2016-05-28 151 views
4

我正在尋找一種方法來檢查頁面列的某一行中是否存在值。檢查值是否存在於其中一個數據庫行

例如,如果應該檢查值'45'是否存在?

Id | page  | 
--------------- 
1 | 23  | 
--------------- 
2 |   | 
--------------- 
3 | 33,45,55 | 
--------------- 
4 | 45  | 
--------------- 

回答

2

find_in_set功能正是你要尋找的:

SELECT * 
FROM mytable 
WHERE FIND_IN_SET('45', page) > 0 
+1

This Works!謝謝 – user759235

1

你不應該在列表中存儲值。在這種情況下尤其如此:

  • 值應該存儲在正確的數據類型中。您將數字存儲爲字符。
  • 應正確定義外鍵關係。
  • SQL沒有很好的字符串處理函數。
  • 生成的查詢無法使用索引。
  • SQL對於列表有很好的數據類型,稱爲。在這種情況下,您需要一個聯結表。

有時候,你會被其他人的糟糕的設計決定所困住。在這種情況下,您可以使用Mureinik建議的find_in_set()

相關問題