我有一個問題,使用LIKE子句的SELECT查詢。我需要在一個特定字段中獲取具有類別ID的所有記錄。所有的分類ID都是這樣存儲的:MySQL選擇在哪裏,但只有一個數字
1; 2; 4; 11; 12; 22; 32;
正在發生的事情是,下面的查詢
SELECT * FROM
mytable
WHEREcatids
LIKE '%2;%'
將選擇所有具有類別ID 2,但也記錄類別12,22,32等。不幸的是,用於存儲類別ID的代碼是不可修改的,並且數字2是從變量中讀取的。 我試着在它旁邊使用NOT LIKE子句,但爲了避免12,22,32,42等,我不能重複10次......
有沒有人知道一種方法來告訴子句LIKE來獲取任何東西與%可以是空的或;但不是一個數字?因爲如果在上面的示例中要獲取的類別ID是1,那麼字符串將以數字1開頭(所以它不會在左邊),但它也會獲取11。
謝謝
你可以存儲數據; 1; 2; 4; 11; 12 ; 22; 32;在啓動時添加額外的分隔符並將查詢更改爲LIKE'%; 2;% – Strik3r
爲什麼數據庫的設計方式使得它可以使用任何可能的東西? –
您最好重新整理您的表格以擺脫一個字段中的存儲值。 – Heavy