我需要搜索一些代碼裏面DB ... 一些數據我有兩個領域是id
和name
... 如果我輸入「ABC」它可以顯示約「的所有數據需要的代碼ABC「.. 如果」DEF「=>所有的DEF數據......或者我輸入任何東西,它可以顯示」任何東西「...MySQL的:搜索數據
我只是知道如何顯示所有數據, ABC」和‘DEF’顯示在一起,這樣的代碼:
"SELECT ID,Name FROM Regist ORDER BY date";
我需要搜索一些代碼裏面DB ... 一些數據我有兩個領域是id
和name
... 如果我輸入「ABC」它可以顯示約「的所有數據需要的代碼ABC「.. 如果」DEF「=>所有的DEF數據......或者我輸入任何東西,它可以顯示」任何東西「...MySQL的:搜索數據
我只是知道如何顯示所有數據, ABC」和‘DEF’顯示在一起,這樣的代碼:
"SELECT ID,Name FROM Regist ORDER BY date";
MySQL的通配符:_
AND %
(結合關鍵字LIKE
)
_
表示單個字符
SELECT name FROM colors WHERE name LIKE 'gr_y';
輸出: '灰色','灰色'。
%
表示任何數量的字符
SELECT name FROM colors WHERE name LIKE 'gr%';
輸出的: '灰色', '灰色', '綠色'。
您可以同時使用_
和%
多次
SELECT name FROM color WHERE name LIKE '_ra%';
輸出: '灰色', '橙色'。
在你的情況下,如果要列出包含以「ABC」或「DEF」開始的名字,你的查詢會是這樣:
SELECT id,name FROM Regist
WHERE name LIKE 'ABC%' OR name LIKE 'DEF%'
ORDER BY date
如果你希望你的名字包含字符串「ABC」或「DEF」裏的任何地方,您的查詢將是:
SELECT id,name FROM Regist
WHERE name LIKE '%ABC%' OR name LIKE '%DEF%'
ORDER BY date
最後,如果你希望你的名字同時包含「ABC」和「DEF」你可以使用:
SELECT id,name FROM Regist
WHERE name LIKE '%ABC%DEF%' OR name LIKE '%DEF%ABC%'
ORDER BY date
從小事我明白你的問題
"SELECT ID,Name FROM Regist where name='ABC' ORDER BY date";
也許你想是這樣的:
SELECT id,name FROM Regist WHERE NAME LIKE '%ABC%' OR NAME LIKE '%DEF%';
請注意,這種搜索是低效的,如果你需要這樣的東西,你最好使用像Sphinx
是這正確嗎?
"SELECT id,name FROM Regist WHERE id LIKE '%' OR NAME LIKE '%' ORDER BY date";
如果我想要我輸入的所有內容都可以顯示.. ??但僅限於該數據... – klox 2010-06-28 07:02:34