文字列としてxmlを格納する列を持つmysqlテーブルがあります。 xml列に6文字の特定の文字列が含まれるすべてのタプルを見つける必要があります。他に何も問題はありません。この6文字の文字列が存在するかどうかを知る必要があります。
したがって、テキストがxmlとしてフォーマットされていることはおそらく問題ではありません。
質問:mysql内でどのように検索できますか?すなわちSELECT * FROM items WHERE items.xml [contains the text '123456']
LIKE演算子を使用してこれを行う方法はありますか?
おそらく LIKE
句 を使用して、単純な文字列照合を行うことができます。
SELECT * FROM items WHERE items.xml LIKE '%123456%'
より高度な機能が必要な場合は、MySQLの全文検索機能をご覧ください: http://dev.mysql.com/doc/refman/5.1/en/fulltext-search .html
Likeを使用すると時間がかかる場合があるため、full_text_searchを使用します。
SELECT * FROM items WHERE MATCH(items.xml) AGAINST ('your_search_Word')
SELECT * FROM items WHERE `items.xml` LIKE '%123456%'
LIKE
の%
演算子は、「何でもここにある」ことを意味します。
LIKEを使用しないのはなぜですか?
SELECT * FROM items WHERE items.xml LIKE '%123456%'
もしかして:
SELECT * FROM items WHERE items.xml LIKE '%123456%'
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);