[英]sql statement syntax for search
試試這個:
SELECT * FROM `TABLE_NAME` WHERE `Topic` LIKE "%13%";
將其保存在多對多關系的第三個表中會更好,更快。
如果要按照示例(單個表)進行保存,請嘗試將數據保存為“,10,13,15,”
之前和之后總是有昏迷,因此以下sql將排除213和132等
select * from table_name where Topic like '%,13,%'
select * from table where find_in_set("13",topic);
或者如果主題不用作集合,則可以...
select * from table where concat(",",topic) like "%,13,%";
第二個並不是真正的優雅,但我不得不做幾次。
因為數據沒有真正歸一化,所以我使用concat在主題字段中添加了一個逗號,因此可以確保“ like”比較在值的前后均以逗號傳遞。 我想對於這個示例,我們還必須刪除所有不需要的空格,因此最終它最終會像這樣:
select * from TABLE where concat(",",replace(topic," ","")) like "%,13,%";
最終,我們必須知道在主題列中會發生什么,才能提出始終有效的查詢。 過去,我曾在以下情況下會在每個值之前和之后使用定界符將值添加到字符串字段(即主題):
(1)(2)(3)(14)(15)(255)(283)
如果您對主題字段執行了類似的操作,則查詢很簡單...
select * from table where topic like "%(13)%";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.