相关疑难解决方法(0)

使用WHERE子句将数组传递给查询

给定一组id $galleries = array(1,2,5)我想要一个SQL查询,它在WHERE子句中使用数组的值,如:

SELECT *
FROM galleries
WHERE id = /* values of array $galleries... eg. (1 || 2 || 5) */
Run Code Online (Sandbox Code Playgroud)

如何生成此查询字符串以用于MySQL?

php mysql arrays

303
推荐指数
12
解决办法
54万
查看次数

MySQL"in clause"中的项目数

我有三个表来定义用户:

USER: user_id (int), username (varchar)
USER_METADATA_FIELD: user_metadata_field_id (int), field_name (varchar)
USER_METADATA: user_metadata_field_id (int), user_id (int), field_value (varchar)
Run Code Online (Sandbox Code Playgroud)

我想创建一个中间层用户,该用户可以访问应用程序中的其他用户.要确定登录使用的用户可以访问哪些用户,我使用如下的子查询:

SELECT user_id FROM user WHERE user_id 
     IN (SELECT user_id 
         FROM user_metadata 
         WHERE user_metadata_field_id = 1 AND field_value = 'foo')
Run Code Online (Sandbox Code Playgroud)

目前,我将子查询字符串存储在变量中,然后在每次需要提取用户列表时将其动态插入到外部查询中.在这样做之后,我想,"只需存储一串实际的user_ids 就更好了".

所以不要将其存储在变量中......

$subSql = "SELECT user_id FROM user_metadata WHERE user_metadata_field_id = 1 AND field_value = 'foo'";
Run Code Online (Sandbox Code Playgroud)

...我实际执行查询并存储结果,如...

$subSql = "12, 56, 89, 100, 1234, 890";
Run Code Online (Sandbox Code Playgroud)

然后当我需要拉出登录用户可以访问的点亮用户时,我可以这样做:

$sql = "SELECT user_id FROM user WHERE user_id IN ($subSql)";
Run Code Online (Sandbox Code Playgroud)

最后问题是:

您可以在MySQL IN …

mysql sql in-clause

64
推荐指数
4
解决办法
7万
查看次数

标签 统计

mysql ×2

arrays ×1

in-clause ×1

php ×1

sql ×1