簡體   English   中英

在逗號分隔的字符串mysql中選擇值

[英]Select value inside a comma separated string mysql

這是我已經思考了幾個小時,但仍然無法得到答案的東西。

因此,我有一個名為“ orders”的mysql表

+-----------------------------+
+ id | include                +
+-----------------------------+
+  1 | 4,7,9                  +
+  2 | 1,23,8                 +
+  3 | 11,6,3                 +                 
+  4 | 2,56,32,6              +
+-----------------------------+

當包含列中有一個數字時,我想選擇一行。

例如,我已經嘗試過:

SELECT *  FROM `orders` WHERE `include` LIKE '%1%'

但是問題在於它同時選擇了第2行和第3行,因為數字“ 11”包含“ 1”。

我需要兩個查詢:何時包含表包含“ x”,以及何時包含表不包含“ x”。

有誰知道如何做到這一點?

使用FIND_IN_SET()

SELECT *  FROM `orders` 
WHERE find_in_set(1, `include`) > 0

但是通常,更改表結構並在列中僅存儲一個值會更好。 這是數據庫規范化的第三條規則。

暫無
暫無

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

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