[英]SQL Select columns with comparison
我有一個 SQL 表,其中有一列名為keywords
。
桌子:
| id | keywords |
| 0 | music programming guitar |
現在我有一個數組,如$array = array("boat", "water", "music");
.
我的目標是從keywords
數組中選擇至少具有其中一項內容的所有列。
Sql查詢:
"SELECT * FROM table WHERE keywords IN ('".$array."')";
它什么都不返回。
強烈不推薦我將要描述的方法。 正確的方法是有一個單獨的表,每個id
和keyword
一行。 這是一個聯結表,它會有如下行:
id keyword
1 music
1 programming
1 guitar
這是在關系數據庫中存儲列表的正確方法。 數據庫具有用於列表的這種出色的數據結構。 它被稱為表,而不是字符串。
但是,如果您真的遇到這種情況,那么您可以通過自己的方式找到解決方案。 據推測,性能不是問題。
黑客是將您的列表格式化為正則表達式,並將where
子句創建為:
where keywords regexp 'boat|water|music'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.