2012-10-17 36 views
1

我試圖通過「SELECT INTO OUTFILE」從表中導出數據庫記錄。 一切正常。但我需要過濾記錄,這是問題。 下面的代碼:使用「WHERE」語句選擇到OUTFILE

SELECT * INTO OUTFILE 'file.txt' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' 
FROM table_name WHERE name LIKE '%John%' AND LENGTH(name) <= 10 ORDER BY name 

這種說法是不行的,但如果我刪除「名稱LIKE‘%約翰%’」的條件,它的工作原理。 但我需要指定這種LIKE條件,我該如何實現它?

謝謝。

+3

更換

WHERE name LIKE '%John%' 

你是什麼意思 「*這個說法行不通*」 是什麼意思?怎麼了?你會得到什麼結果或錯誤?你期望什麼? – eggyal

+0

我通過Wordpress'WPDB'類執行這個查詢。它不會返回任何東西。我希望收到該文件。 –

+0

如果您執行查詢時沒有'INTO OUTFILE'子句?實際上是否有符合標準'WHERE name LIKE'%John%'和LENGTH(name)<= 10'的記錄?請舉個例子。 – eggyal

回答

3

可能是%符號的問題。嘗試用

WHERE LOCATE(name, 'John') > 0 
+0

'%'符號有可能是什麼問題? – eggyal

+0

我在一個關於WPDB的線程中讀到:'但是,當我嘗試使用它來添加一行,其中一個單元格包含百分號(「%」)時,沒有任何反應。' –

+4

回答是:'prepare()期望sprintf()格式字符串,其中%用於前綴佔位符類型 。你可以使用一個字面值%,前面加上 和另一個%:%%。' –