PHP 和 MySQL 通配符?或者我认为

标签 php mysql wildcard

我不确定这是否是通配符或如何构建此代码。基本上我想要实现的是从 user_ranks 表中进行选择,每一行都有一个唯一的 id,在 users 表中,有一个名为 ranks 的列> 并且每个 user_rank id 由 | 字符分隔。

例如,在 users 表中,我有 |2|4|14|13|rank - 每个 ID user_ranks 中有 id

这是我到目前为止所得到的,这显然是错误的。

$usersquery = $db->query("SELECT rank FROM users WHERE username = '" . $username ."'");

while ($users = $usersquery->fetch_assoc()) {
    $ranksquery = $db->query(
        "SELECT * FROM user_ranks WHERE id LIKE '%[" . $users['rank'] . "]%'"
    );
    while ($ranks = $ranksquery->fetch_assoc()) {
        return $ranks['id'];            
    }
}

如果您需要任何额外信息,请告诉我,解释起来有点困难,非常感谢您为我提供的任何帮助!

最佳答案

使用 PHP 的 explodetrim$users['rank'] 获取单独的 ID:

$rank_ids = explode('|', trim($users['rank'], '|'));

然后使用这个 SQL:

$sql = "SELECT * FROM user_ranks WHERE id IN (" . implode(", ", $rank_ids) . ")";

关于PHP 和 MySQL 通配符?或者我认为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26237891/

相关文章:

php - 模型代码点火器上的查询数组

php - Apple Push with proxy 和 stream_context

batch-file - 编写批处理文件以删除带有通配符的文件

java - 带有通配符输入的 unix 'ls' 命令 - 相当于 java 6

php - Yii2 - beforeAction 期间的返回响应

java - 由 : java. lang.NoClassDefFoundError : Could not initialize class javassist. util.proxy.DefineClassHelper 引起

php - 在数据库中选择三个不同的表后如何避免 Phpmyadmin 中的循环数据

mysql - 搜索可以位于两个不同列中的数据(查询/设计)

java - java中使用通配符的hashmap无法赋值

php - 如何优化这个 PHP 脚本/删除 HTML