我需要有关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...。 而且它不能解决我的问题。
答案 0 :(得分:3)
尝试一下:
SELECT *
FROM accounts
WHERE CONCAT(',', type, ',') LIKE '%,3,%';
此技巧将逗号放在type
CSV字符串的末尾,因此我们要做的就是检查该字符串中任何位置的,3,
。
顺便说一句,通常不希望将这样的CSV数据存储在SQL表中。相反,请考虑规范化数据并将这些CSV值存储在单独的行中。