2

次のような行を持つ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を返す信頼できる方法です。つまり、検索語が何かで囲まれているが、chars Az、0-9である場合です。何か案は?これはMySqlでも可能ですか?

ありがとう!!

4

4 に答える 4

3

SQL で正規表現を使用できます

SELECT * FROM `table` WHERE desc REGEXP '\bbike\b'
于 2013-02-11T12:11:08.663 に答える
1

MySql RegExについて読み始める必要があります。

サンプルコード。

SELECT * FROM table WHERE field_name REGEXP PATTERN;

より具体的に

詳細表

識別名
1 ディペシュ
2 ディップ
3 ディップ
4 ディディ
5ディ
SELECT * FROM details WHERE NAME REGEXP '^Di$';

結果

名前 -> ディ

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

結果

名前 -> ディディ、ディ

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

結果

名前 -> ディップ、ディディ、ディ

于 2013-02-11T12:15:01.650 に答える
0

クエリで追加の条件を指定する必要があります。

SELECT  *
FROM    `mytable`
WHERE
    `desc` LIKE '% bike %' OR
    `desc` LIKE '% bike' OR
    `desc` LIKE 'bike %';
于 2013-02-11T12:10:31.893 に答える
0

これを試してください、それがあなたを助けることを願っています

"SELECT * FROM `mytable` WHERE `desc` LIKE '% bike'
于 2013-02-11T12:14:03.277 に答える