在mysql查询中执行以下操作的正确方式是什么?
$string="apple banana orange";mysql列A = "banana"
mysql查询:$string中不包含列A
谢谢!
发布于 2013-03-22 04:55:19
如果每一行都有一个名为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中
试一试吧!
注意事项
查询本身将产生全表扫描。
您应该考虑进行全文索引。
发布于 2013-03-22 04:34:20
SELECT * FROM table_name
WHERE A NOT IN ('apple', 'banana', 'orange');发布于 2013-03-22 04:47:11
也许是这样的?(虽然我还没有测试它,但我认为它会工作)
<?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...
?>更新:不要生成数组...改为..do ...!$items = str_replace(“",$string);
https://stackoverflow.com/questions/15557471
复制相似问题