在 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 orange
apple
在pineapple banana orange
在语义方面
apple
在apple banana orange
apple
不在pineapple banana orange
如果你正在寻找grape
呢?
作为字符串
grape
在apple banana orange grape
grape
在apple banana orange grapefruit
在语义方面
grape
在apple banana orange grape
grape
不在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);