开发者

mysql: need code for search data

i need some code for search some data inside DB... i have two fields that is id 开发者_StackOverflowand name... if i type "ABC" it can show all data about "ABC".. if "DEF"=>all DEF data...or i type anything it can show that "anything"...

i'm just know how to show all data inside fields that makes "ABC" and "DEF" show together,the code like this:

"SELECT ID,Name FROM Regist ORDER BY date";


MySQL wildcards: _ AND % (in conjunction with keyword LIKE)


_ denotes a single character

SELECT name FROM colors WHERE name LIKE 'gr_y';

Output: 'grAy', 'grEy'.


% denotes any number of characters

SELECT name FROM colors WHERE name LIKE 'gr%';

Output: 'grAY', 'grEY', 'grEEN'.


You can use both _ and % multiple times

SELECT name FROM color WHERE name LIKE '_ra%';

Output: 'GraY', 'OraNGE'.


In your case, if you want to list the names containing starting with either 'ABC' or 'DEF', your query would be like this:

SELECT id,name FROM Regist
    WHERE name LIKE 'ABC%' OR name LIKE 'DEF%'
    ORDER BY date

If you want your names to contain the strings 'ABC' OR 'DEF' anywhere inside, your query would be:

SELECT id,name FROM Regist
    WHERE name LIKE '%ABC%' OR name LIKE '%DEF%'
    ORDER BY date

Finally, if you want your names to contain both 'ABC' AND 'DEF' you could use:

SELECT id,name FROM Regist
    WHERE name LIKE '%ABC%DEF%' OR name LIKE '%DEF%ABC%'
    ORDER BY date


Probably you want something like this:

SELECT id,name FROM Regist WHERE NAME LIKE '%ABC%' OR NAME LIKE '%DEF%';

Please note that this kind of search is inefficient and if you need something like that you'd better use something like Sphinx


From the little i understand your question

"SELECT ID,Name FROM Regist where name='ABC' ORDER BY date";


is this correct?

"SELECT id,name FROM Regist WHERE id LIKE '%' OR NAME LIKE '%' ORDER BY date";
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜