簡體   English   中英

SQL 選擇列進行比較

[英]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."')";

它什么都不返回。

強烈不推薦我將要描述的方法。 正確的方法是有一個單獨的表,每個idkeyword一行。 這是一個聯結表,它會有如下行:

id       keyword
1        music
1        programming
1        guitar

這是在關系數據庫中存儲列表的正確方法。 數據庫具有用於列表的這種出色的數據結構。 它被稱為表,而不是字符串。

但是,如果您真的遇到這種情況,那么您可以通過自己的方式找到解決方案。 據推測,性能不是問題。

黑客是將您的列表格式化為正則表達式,並將where子句創建為:

where keywords regexp 'boat|water|music'

暫無
暫無

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

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