0
我正在尋找一個mySQL命令來根據數組字段是否包含該數組的特定項目來選擇行。根據數組中的項目進行選擇
我正在尋找一個mySQL命令來根據數組字段是否包含該數組的特定項目來選擇行。根據數組中的項目進行選擇
不太確定您是要查找存儲在數據庫中的數組中的項目,還是希望查找與數組中項目匹配的所有行。
對於前者(因爲MySQL不支持數組類型本身我假設你正在做的事情的數據序列化到字符串列等):
SELECT [columns] FROM [table] WHERE [array_column] LIKE "%{separator}[test_value]{separator}%";
e.g. SELECT * FROM my_table WHERE values_list LIKE "%|5|%";
會做job(其中分隔符是用來分隔存儲在字符串列中的值的任何字符 - 例如,給定數組[0,5,10,15]和分隔符「|」,序列化的字符串將是「| 0 | 5 | 10 | 15 |「)
對於第二種情況:
SELECT [columns] FROM [table] WHERE [test_column] IN (list, of, some, values);
e.g. SELECT * FROM my_table WHERE my_value IN (0, 5, 10, 15);
我不太確定我想要什麼。我需要'選擇條目從表WHERE數組字段CONTAINS my_value',如果這樣做更有意義? –
第一個是你想要的然後(即'SELECT [columns] FROM [table] WHERE [array_column] LIKE「%{separator} [test_value] {separator}%」;') –
不太合適,這裏是在mySQL中看到的數組a:3:{i:0; s:3:「383」; i:1; s:3:「409」; i:2; s:3:「410」;}' –