web-dev-qa-db-ja.com

MySQLのテキスト列内の文字列を検索します

文字列としてxmlを格納する列を持つmysqlテーブルがあります。 xml列に6文字の特定の文字列が含まれるすべてのタプルを見つける必要があります。他に何も問題はありません。この6文字の文字列が存在するかどうかを知る必要があります。

したがって、テキストがxmlとしてフォーマットされていることはおそらく問題ではありません。

質問:mysql内でどのように検索できますか?すなわちSELECT * FROM items WHERE items.xml [contains the text '123456']

LIKE演算子を使用してこれを行う方法はありますか?

60
user94154

おそらく LIKE を使用して、単純な文字列照合を行うことができます。

SELECT * FROM items WHERE items.xml LIKE '%123456%'

より高度な機能が必要な場合は、MySQLの全文検索機能をご覧ください: http://dev.mysql.com/doc/refman/5.1/en/fulltext-search .html

97
Mike Cialowicz

Likeを使用すると時間がかかる場合があるため、full_text_searchを使用します。

SELECT * FROM items WHERE MATCH(items.xml) AGAINST ('your_search_Word')
10
Raj
SELECT * FROM items WHERE `items.xml` LIKE '%123456%'

LIKE%演算子は、「何でもここにある」ことを意味します。

6
Amy B

LIKEを使用しないのはなぜですか?

SELECT * FROM items WHERE items.xml LIKE '%123456%'
4
systempuntoout

もしかして:

SELECT * FROM items WHERE items.xml LIKE '%123456%'
2
rytis

wordpress prepare行を使用している場合、上記の解決策は機能しません。これは私が使用したソリューションです:

   $Table_Name    = $wpdb->prefix.'tablename';
   $SearchField = '%'. $YourVariable . '%';   
   $sql_query     = $wpdb->prepare("SELECT * FROM $Table_Name WHERE ColumnName LIKE %s", $SearchField) ;
 $rows = $wpdb->get_results($sql_query, ARRAY_A);
0
Debbie Kurth