我的SELECT查询与LIKE语句一起使用但感到震惊;我的行被重复了,我不知道为什么?
SELECT *
FROM questions, counts
WHERE counts.test_coursecode LIKE '%' || questions.coursecode || '%'
答案 0 :(得分:0)
我假设您要使用
SELECT *
FROM questions, counts
WHERE counts.test_coursecode LIKE CONCAT('%', questions.coursecode, '%')
代替。
||
不是连接运算符,而是MySQL的sql方言中的logical OR。
您的查询将匹配每一行,因为任何值都将匹配第一个表达式,它的计算结果为
SELECT *
FROM questions, counts
WHERE counts.test_coursecode LIKE '%' -- that's true, if test_course_code is not null
OR questions.coursecode
OR '%'
答案 1 :(得分:0)
您必须包含两个表的内连接
SELECT *
FROM questions q inner join counts c on a q.id and c.fk
WHERE counts.test_coursecode LIKE CONCAT('%', questions.coursecode, '%')
或
SELECT *
FROM questions q , counts c
where a q.id and c.fk
and counts.test_coursecode LIKE CONCAT('%', questions.coursecode, '%')