在Like运算符中使用变量

时间:2017-05-07 21:23:21

标签: php mysql

我正在尝试从“activePages”列中包含特定ID号的表中调用随机行。

例如,activePages可能在一行中包含“123 456”,在另一行中包含“456 789”,我使用以下代码:

SELECT * FROM advertising WHERE activePages LIKE %456% ORDER BY rand() LIMIT 1

...随机调用这两行中的一行。

我想做同样的事情,但用一个变量代替“456”。我需要在哪里放置%才能使用?或者我完全错过了另一个问题?

这就是我现在所拥有的:

$getad = $pdo->prepare('SELECT * FROM advertising WHERE activePages LIKE :id ORDER BY rand() LIMIT 1');
$getad->execute(['id' => $id]);

1 个答案:

答案 0 :(得分:0)

写了一个快速测试来验证SO上的其他帖子。将%添加到PHP变量可以进行类似的比较。

<?php
  $id = "%" . $searchTerm . "%";
  $sql  = "SELECT * FROM TABLE
           WHERE COLUMN LIKE :id";
  $stmt->execute([':id'=> $id]);
?>