mysqlクエリで次のことを行う適切な方法は何ですか?:
$string="apple banana orange";
mysql列A = "banana"
mysqlクエリ:列Aは含まれていません$string
ありがとう!
mysqlクエリで次のことを行う適切な方法は何ですか?:
$string="apple banana orange";
mysql列A = "banana"
mysqlクエリ:列Aは含まれていません$string
ありがとう!
各行に、Aスペースで区切られたトークンを持つという列がある場合は、次のように実行できます。
SELECT * FROM table_name
WHERE LOCATE(CONCAT(' ',A,' '),'apple banana orange') = 0;
両側に空白を埋めた理由は、次のような状況をカバーするためです。
SELECT * FROM table_name
WHERE LOCATE(CONCAT(' ',A,' '),'pineapple banana orange') = 0;
文字列として
appleにありますapple banana orangeappleにありますpineapple banana orangeセマンティクスの観点から
appleにありますapple banana orangeappleにありませんpineapple banana orangeあなたが探していたらどうしますgrapeか?
文字列として
grapeにありますapple banana orange grapegrapeにありますapple banana orange grapefruitセマンティクスの観点から
grapeにありますapple banana orange grapegrapeにありませんapple banana orange grapefruit試してみる !!!
クエリ自体は、全表スキャンを生成します。
FULLTEXTインデックスの作成を検討する必要があります。
SELECT * FROM table_name
WHERE A NOT IN ('apple', 'banana', 'orange');
多分このようなもの?(私はそれをテストしていませんが、うまくいくと思います)
<?php
$string = "apple banana orange";
//Make an array of each fruit in string (with delimiter space)
$items = explode(" " , $string);
//None of the fruits in $string would be listed in resultset
$query = "SELECT * FROM fruits WHERE columnA NOT IN ($items)";
//db-handling...
?>
更新:配列を作成しないでください.....代わりにこれを実行してください...!$ items = str_replace( ""、 "、"、$ string);