使用MySQL在字符串中查找确切的文本

时间:2017-07-07 13:56:40

标签: mysql

我有一个包含两列的数据库表,一列用于ID,另一列用于Colors。想象一下,我在这张表中有3行,包含以下数据:

ID: 1 => Colors: Blue; Yellow; Red;
ID: 2 => Colors: Green; GreenYellow; Yellowgreen; Blue;
ID: 3 => Colors: Yellow; Blue;

如果我想进行SQL调用以了解是否存在黄色寄存器(只有黄色,没有GreenYellow或Yellowgreen)。我该怎么做?我正在尝试:

$statement = $conexion->prepare("SELECT * FROM comentarios  WHERE suscritos LIKE :suscritos");
$statement->execute(array(":suscritos" => "%Yellow%"));
$todos_mis_mensajes = $statement->fetchAll();
  

ID结果:1,2和3

 $statement = $conexion->prepare("SELECT * FROM comentarios  WHERE suscritos LIKE :suscritos");
 $statement->execute(array(":suscritos" => "%Yellow_"));
 $todos_mis_mensajes = $statement->fetchAll();
  

ID结果:无结果

$statement = $conexion->prepare("SELECT * FROM comentarios  WHERE suscritos LIKE :suscritos");
$statement->execute(array(":suscritos" => "_Yellow%"));
$todos_mis_mensajes = $statement->fetchAll();
  

ID结果:3

2 个答案:

答案 0 :(得分:1)

只需输入没有通配符的“黄色”字样。

%表示0个或更多字符 “%Yellow%”表示所有带黄色字的字符串 “%Yellow”表示以黄色结尾的所有字符串 “黄色%”表示以黄色开头的所有字符串。

_表示必须有1个字符。 “_Yellow”所有在黄字之前都有字符的字符串。 即:aYellow,bYellow
不可接受的:abyellow,黄色

答案 1 :(得分:0)

试试这个电话:

select * from comentarios where suscritos regexp '[[:<:]]Yellow[[:>:]]';

在此处查找有关MySQL正则表达式的更多信息: https://dev.mysql.com/doc/refman/5.7/en/regexp.html