1

在 mysql 查询中执行以下操作的正确方法是什么?:

$string="apple banana orange";

mysql 专栏A = "banana"

mysql查询:列A未包含在$string

谢谢!

4

3 回答 3

2

如果每一行都有一个名为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;

作为字符串

  • appleapple banana orange
  • applepineapple banana orange

在语义方面

  • appleapple banana orange
  • apple不在pineapple banana orange

如果你正在寻找grape呢?

作为字符串

  • grapeapple banana orange grape
  • grapeapple banana orange grapefruit

在语义方面

  • grapeapple banana orange grape
  • grape不在apple banana orange grapefruit

试试看 !!!

警告

查询本身会产生全表扫描。

您应该考虑做 FULLTEXT 索引。

于 2013-03-21T20:55:18.800 回答
0
SELECT * FROM table_name 
WHERE A NOT IN ('apple', 'banana', 'orange');
于 2013-03-21T20:34:19.527 回答
0

也许是这样的?(虽然我没有测试过,但我认为它会工作)

<?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);

于 2013-03-21T20:47:10.777 回答