查询 Sql 喜欢的字符串

Query Sql Like String

我需要有关 sql 查询 LIKE 的帮助。 数据库中列的值与以下相同:

 record 1 : "3,13,15,20"
 record 2 : "13,23,14,19"
 record 3 : "3,14,15,19,20"......

现在我想得到最准确的值为3的记录 这是我的查询:

SELECT * FROM accounts where type like '%3%' 

此查询将查找所有存在值为“3”的记录,例如:13,23 .... 它并没有解决我的问题。

试试这个:

SELECT *
FROM accounts
WHERE CONCAT(',', type, ',') LIKE '%,3,%';

Demo

这个技巧将逗号放在 type CSV 字符串的末尾,这样我们所要做的就是检查该字符串中的任何位置的 ,3,

顺便说一句,通常不希望在您的 SQL 表中存储这样的 CSV 数据。相反,请考虑规范化您的数据并将这些 CSV 值存储在不同的行中。