我有一个包含两列的数据库表,一列用于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
答案 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