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

使用MySQL查找字符串中的精确文本,mysql,Mysql,我有一个数据库表,有两列,一列用于ID,另一列用于颜色。假设此表中有3行包含以下数据: ID: 1 => Colors: Blue; Yellow; Red; ID: 2 => Colors: Green; GreenYellow; Yellowgreen; Blue; ID: 3 => Colors: Yellow; Blue; 如果我想进行SQL调用,以了解是否有黄色的寄存器,只有黄色,没有绿黄色或黄绿色。我怎么做?我正在尝试: $statement = $conexio

我有一个数据库表,有两列,一列用于ID,另一列用于颜色。假设此表中有3行包含以下数据:

ID: 1 => Colors: Blue; Yellow; Red;
ID: 2 => Colors: Green; GreenYellow; Yellowgreen; Blue;
ID: 3 => Colors: Yellow; Blue;
如果我想进行SQL调用,以了解是否有黄色的寄存器,只有黄色,没有绿黄色或黄绿色。我怎么做?我正在尝试:

$statement = $conexion->prepare("SELECT * FROM comentarios  WHERE suscritos LIKE :suscritos");
$statement->execute(array(":suscritos" => "%Yellow%"));
$todos_mis_mensajes = $statement->fetchAll();
IDs结果:1、2和3

IDs结果:无结果

IDs结果:3

试试这个电话:

select * from comentarios where suscritos regexp '[[:<:]]Yellow[[:>:]]';
在此处查找有关MySQL正则表达式的更多信息:

只需输入不带通配符的黄色单词即可

%表示0个或多个字符。 %黄色%表示所有带有黄色单词的字符串。 %黄色表示以黄色结尾的所有字符串。 黄色%表示所有以黄色开头的字符串

_指示必须正好有1个字符。 _黄色所有在黄色单词前有字符的字符串。 艾:好的,再见
不可接受:abYellow,Yellow

suscritos,如'Yellow;%'或者像“%Yellow;”这样的suscritos工作!创建一个响应以便我可以验证。谢谢
$statement = $conexion->prepare("SELECT * FROM comentarios  WHERE suscritos LIKE :suscritos");
$statement->execute(array(":suscritos" => "_Yellow%"));
$todos_mis_mensajes = $statement->fetchAll();
select * from comentarios where suscritos regexp '[[:<:]]Yellow[[:>:]]';