表中的每一行都有一个逗号分隔的值。 假设在测试表中
Value
1,5,12
2,4,15
5,2,6
我想查找值= 5的记录 使用普通的ms sql,我使用过like运算符,该运算符给了我所有3条记录。 如果可以使用正则表达式,请提供帮助。
答案 0 :(得分:0)
也尝试一下。看起来效率不高,但是可以正常工作。
/* Create a table called NAMES */
CREATE TABLE test(Id integer PRIMARY KEY, Name text);
/* Create few records in this table */
INSERT INTO test VALUES(1,'1,5,12');
INSERT INTO test VALUES(2,'2,4,15');
INSERT INTO test VALUES(3,'5,2,6');
INSERT INTO test VALUES(5,'1,2,5');
-- SELECT * FROM test;
SELECT * from test WHERE Name LIKE '%,5,%' OR
Name LIKE '%5,%' OR
Name LIKE '%,5%';
答案 1 :(得分:0)
您可能已经知道这是一种错误的数据格式,应该对其进行修复。如果坚持使用,可以使用like
:
SELECT t.*
FROM test t
WHERE ',' + Name + ',' LIKE '%,5,%';