php - 每次选择具有相同通配符的多行一次

标签 php mysql pdo

我有一个这样的数据库:

banner     |  image  |  date
------------------------------
123_first  |  xxxxx  |  date
123_second |  xxxxx  |  date
134_foo    |  xxxxx  |  date
134_foo    |  xxxxx  |  date
134_bar    |  xxxxx  |  date

我需要得到:

banner     |  image  |  date
-----------------------------
134_foo    |  xxxxx  |  date
134_bar    |  xxxxx  |  date

当我选择特定 ID(134)时。 因此,我只需要在每个横幅第一次出现时获取所有横幅 ID。

我正在使用此 PDO 语句,但它没有返回任何内容:

$sth = $dbh->prepare('SELECT `banner` FROM `abanners` WHERE `banner` LIKE ? ORDER BY `date` DESC GROUP BY `banner`');
$sth->execute(array($user["id"] . "%"));

结果应该是:

Array('134_foo', '134_bar');

如何解决这个问题?

最佳答案

尝试

$id = $user["id"];
$sth = $dbh->prepare('SELECT `banner` FROM `abanners` 
                     WHERE `banner` LIKE ? ORDER BY `date` DESC GROUP BY `banner`');
$sth->execute(array("$id%"));

关于php - 每次选择具有相同通配符的多行一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18932890/

相关文章:

php - PDOStatement 对象和 MySQL 用户定义变量

javascript - PHP 和 Javascript 中密码匹配的正则表达式

php - 显示 2 随机行而不是 1 行

php - 使用动态下拉列表从 MySQL 数据库加载文本区域中的数据

MySQL 查询 - 这里面有什么问题吗?

php - PDO 选择倍数 count()

php - 如何将数组的每个元素插入数据库?

php sql检查值为每个肯定记录打印一行

php - 您如何使用 PHP 与正在运行的 C++ 进程进行交互?

php - 为什么 php 中的以下 sql 查询不起作用?