MySql查询质询 - 用空格返回结果?

时间:2013-02-11 12:05:38

标签: php mysql database select

我有一个MySql数据库,其中包含以下几行:

ID    DESC
 1    This is my bike
 2    Motorbikes are great
 3    All bikers should wear helmets
 4    A bike is great for exercise
 5    A. Top. Bike.

我想要做的是返回包含搜索词周围空格的行,或者该术语位于描述的结尾或开头。

例如,

"SELECT * FROM `mytable` WHERE `desc` LIKE '%bike%'"

将返回所有行。但是,

"SELECT * FROM `mytable` WHERE `desc` LIKE '% bike %'

只返回第4行。

我真正想要的是一种返回第1,4和5行的可靠方法,即搜索项被任何字母A-z,0-9所取代。有任何想法吗?这对MySql来说甚至可能吗?

谢谢!

4 个答案:

答案 0 :(得分:3)

您可以在SQL中使用正则表达式

SELECT * FROM `table` WHERE desc REGEXP '\bbike\b'

答案 1 :(得分:1)

您应该开始阅读MySql RegEx

示例代码。

SELECT * FROM table WHERE field_name REGEXP PATTERN;

更具体

详情表

ID      NAME
1       Dipesh
2       Dip
3       Dipe
4       DiDi
5       Di
table

<强>结果

NAME - &gt;二

SELECT * FROM details WHERE NAME REGEXP '^Di$';

<强>结果

NAME - &gt;迪迪,迪

SELECT * FROM details WHERE NAME REGEXP 'Di$';

<强>结果

NAME - &gt; Dip,DiDi,Di

答案 2 :(得分:0)

您需要在查询中指定其他条件:

SELECT  *
FROM    `mytable`
WHERE
    `desc` LIKE '% bike %' OR
    `desc` LIKE '% bike' OR
    `desc` LIKE 'bike %';

答案 3 :(得分:0)

试试这个,希望它能帮到你

"SELECT * FROM `mytable` WHERE `desc` LIKE '% bike'