2014-09-13 31 views
0

我有我的SELECT查詢與LIKE語句一起使用,但很震驚;我的行取回重複,我不知道爲什麼?在列名上使用%LIKE語句但行重複

SELECT * 
FROM questions, counts 
WHERE counts.test_coursecode LIKE '%' || questions.coursecode || '%' 
+0

你能分享一些數據嗎?看起來像多個'coursecode'可能匹配'test_coursecode'(反之亦然)。 – Mureinik 2014-09-13 12:07:32

回答

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, '%') 
+0

q.id和c .fk幫助結束重複的行感謝一百萬 – PULabs 2014-09-13 12:38:45

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 '%' 
+0

我剛剛嘗試過你的@ VMAI它的作品,但行也重複。 – PULabs 2014-09-13 12:11:04

+0

@PULabs如果我們沒有數據,也沒有想要的結果,我們無法做得更好。 – VMai 2014-09-13 12:12:46

+0

令人驚訝的是,它仍然可以工作,但行不斷重複...感謝您的寶貴時間@VMail – PULabs 2014-09-13 12:14:42