簡體   English   中英

查詢選擇並一次檢查1行並在找到正確的值(MYSQL)時停止?

[英]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;

http://sqlfiddle.com/#!2/24b1f/23

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM