2017-05-05 16 views
0

著者名のMySQLデータベースを検索したいと思います。問題は、さまざまな方法で同じ著者名を綴る(またはデータベースに入力する)ことができます。 と同様のの名前を確認する必要があります。MySQLの検索文字列が含まれています

私のauthorsテーブルのサンプルは次のとおりです。

+---------+-------------+ 
| id  | author  | 
+---------+-------------+ 
| 1  | JK Rowling | 
+---------+-------------+ 
| 2  | J.K Rowling | 
+---------+-------------+ 
| 3  | Rowling JK | 
+---------+-------------+ 
| 4  | Rowling J.K | 
+---------+-------------+ 
| 5  | JK. Rowling | 
+---------+-------------+ 
| 6  | Jim Jones | 
+---------+-------------+ 

すべての書籍を「J.K Rowling」で検索したいので、私が使用しているクエリは次のとおりです。

SELECT * 
FROM `authors` 
WHERE `author` LIKE '%J.K Rowling%' 

返信no results

SELECT * 
FROM `authors` 
WHERE `author` LIKE 'J.K Rowling%' 

返信no results

SELECT * 
FROM `authors` 
WHERE `author` LIKE '%J.K Rowling' 

返信no results

類似の著者を返すために、クエリをどのように構成する必要がありますか。

おかげ

+0

「item_author」列はサンプルではありません。 – TZHX

+1

は 'item_author'が' author'であるとは思いませんか? –

+0

謝罪質問を編集しました。 Typo –

答えて

0

同様の名前がローリングであると思われるので、私はこれを試してみてください。あなたが唯一のこれ以上でもそれ以下J.K Rowlingを持っていないと行を検索しますプロセスを意味%J.K Rowling%を使用しているためだ

SELECT * 
FROM `authors` 
WHERE `author` LIKE '%Rowling%' 
+0

私はそれを行うことができません、私は全体の文字列を検索しています。行全体にある文字列全体:/ありがとう、 –

0

。あなたのデーターベースに基づいて、J.K Rowlingはありません。 Rowlingなどを試してみてください。

+0

J.K Rowlingがデータセットにあります –

0

あなたの問題はです。 "

MySQLのドキュメントによると、LIKE演算子を使用するときの特殊文字は "%"(パーセントは0,1または複数の文字に一致します)と "_"(アンダースコアは1文字のみに一致します) 。 http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html

A "。" (期間)はMySQLのREGEXP演算子にとって特別な意味を持ちますが、それでも列のリテラル期間と一致する必要があります。 http://dev.mysql.com/doc/refman/5.0/en/regexp.html

関連する問題