2015-09-13 47 views
1

我有一個關於MySQL的快速問題。我試圖排除以下結果: 「新會員申請」, 「新開發人員申請」排除「不類似」的結果(不像「新的%應用程序」)

基本上是「New X Application」。不過,這是我第一次使用「不喜歡」。這裏的代碼行:

'where' => 't.approved = 1 AND t.title NOT LIKE "New % Application"', 

我已經知道我做錯了,因爲它不工作。因此,我想知道我做錯了什麼,以及如何使這個工作。當然,我可以使用「NOT LIKE'新成員應用程序%'而不是'新開發者應用程序%'」但我想盡可能簡單。

回答

1

不能複製:

SQLFiddle

CREATE TABLE tab(title VARCHAR(100)); 

INSERT INTO tab(title) 
VALUES ("New Member Application"), ("New Developer Application"),("x"); 

SELECT * 
FROM tab 
WHERE title NOT LIKE "New % Application"; 

貴標題空格?

SELECT * 
FROM tab 
WHERE LTRIM(RTRIM(title)) NOT LIKE "New % Application"; 
+0

你可能是對的,我在使用'WHERE標題不喜歡'%1%New%Application%'' –

+1

我相信這是問題所在。似乎現在正常工作!謝謝! –

0

如何使用not in

t.approved = 1 AND t.title not in ('New Member Application', 'New Developer Application') 
+0

這似乎確實有用。不過,我認爲它必須匹配確切的文字。 (我嘗試使用%符號,它不起作用)。但我可能是錯的。謝謝! –

+0

我不明白你的評論。這個公式檢查確切的文本。 –