MySql查询质询-返回带有空格的结果


MySql query challenge - return results with whitespace?

我有一个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之外的任何字符进行sorround。有什么想法吗?这在MySql中可能吗?

谢谢!!

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

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

您应该开始阅读MySql RegEx

示例代码。

SELECT * FROM table WHERE field_name REGEXP PATTERN

更具体

详细信息表

ID名称1迪佩什2倾斜3 Dipe4 DiDi5 Di
SELECT * FROM details WHERE NAME REGEXP '^Di$';

结果

名称->Di

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

结果

名称->DiDi,Di

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

结果

名称->Dip、DiDi、Di

您需要在查询中指定附加条件:

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

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

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