查询像字符串一样的SQL

时间:2018-08-06 11:03:49

标签: sql sql-like

我需要有关SQL查询的帮助。 数据库中列的值如下:

| id | itemCode | Count 1 Result | Count Is 1 | Count 2 Result | Count Is 2 |
|----|----------|----------------|------------|----------------|------------|
|  1 |      001 |              1 |  Counter-1 |              1 |  Counter-2 |
|  2 |      002 |              2 |  Counter-1 |              3 |  Counter-2 |

目前,我想获取最准确的记录,值为3 这是我的查询:

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

此查询将发现所有值存在的记录均为“ 3”,例如:13,23...。 而且它不能解决我的问题。

1 个答案:

答案 0 :(得分:3)

尝试一下:

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

enter image description here

Demo

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

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