[英]Query to Select & check 1 row at a time & stop when it finds the right value (MYSQL)?
鑒於此表:
Col1-Col2 85 - 2 95 - 4 46 - 3 79 - 6 11 - 5 13 - 1
要求是我希望系統一次檢查每一行,如果它看到col2 = 3或col2 = 1,那么它將停止並返回它們之間。
例如:當用戶輸入“85”時,它會看下一條記錄“95”(col2 = 4而不是3或1)然后它將查看下一條記錄“46”(col2 = 3)然后它會中斷並返回之間。
Col1-Col2 95 - 4
例2:當用戶搜索“46”時,它將顯示2個邊界(46 - 3)和(13 - 1)之間:
Col1-Col2 79 - 6 11 - 5
我認為最簡單的代碼是在mysql中使用用戶定義的變量,如下所示:
select @pv:=col1, col2 from Table1
where @pv=85
但是這段代碼不起作用。 我在互聯網上搜索但找不到類似的問題。
誰能幫我? 如果您可以在sql小提琴( http://sqlfiddle.com/#!2/24b1f/3 )中修改查詢,那么它會很棒。
但是,它也可以在SQL中使用,但很難閱讀。 這是第一個例子
select col1, col2 from
(select col1,
col2,
if(col2 in (1,3) and @row = 1,@row:=@row+1, @row) as end,
if(col1 = 85 and @row = 0,@row:=1,@row) as start
from Table1
join (select @row := 0 from dual) dummy) as magic
where end = 1;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.