我有一個聲明,我希望執行以查找包含字符串的列是否包含特定值。使用LIKE與準備好的語句
+----+------+
| id | st |
+----+------+
| 0 | 2183 |
| 1 | 5820 |
| 2 | 2984 |
| ...| ... |
+----+------+
說我希望能夠找到其中st
包含1中的所有行,我會用這些有條件的地方:
WHERE st LIKE "%1%"
OR st LIKE "1%"
OR st LIKE "1"
OR st LIKE "%1"
但是我怎麼做到這一點在一份聲明中?
$ps = $db->prepare("
SELECT id
FROM table
WHERE st LIKE "%:a%"
OR st LIKE ":a%"
OR st LIKE ":a"
OR st LIKE "%:a"
");
$ps->execute(array(
':a' => $var
));
這顯然不起作用。
'%'符號必須是'$ var'的一部分,不是準備好的語句的一部分。也只有你需要。 「%:a%」它包括where子句的所有其他部分 – Jens