php - 如何在 MySQL 查询中编写 PHP 代码

标签 php mysql sql

我很困惑如何在 MySQL 查询中创建循环。

我有这个问题:

<?php
    $arr = explode(',', $features);
    $query_spicy = "
    SELECT wposts.*             
        FROM $wpdb->posts wposts
    INNER
        JOIN ( SELECT post_id
               FROM $wpdb->postmeta wpostmeta
                    WHERE ('; 
                                ( wpostmeta.meta_key = 'features' AND wpostmeta.meta_value LIKE '%test1%' )
                            OR 
                                ( wpostmeta.meta_key = 'features'AND wpostmeta.meta_value LIKE '%test2%' )
                            OR 
                                ( wpostmeta.meta_key = 'features'AND wpostmeta.meta_value LIKE '%test3%' )
                            OR
                                ( wpostmeta.meta_key = 'features'AND wpostmeta.meta_value LIKE '%test4%' )
                            OR
                                ( wpostmeta.meta_key = 'features'AND wpostmeta.meta_value LIKE '%test5%' )
                    ')
                    GROUP BY post_id
            ) AS t ON t.post_id = wposts.ID WHERE wposts.post_status = 'publish' AND wposts.post_type = 'book' ORDER BY wposts.post_date DESC";
?>

我想用 for 循环生成波纹管动态部分:

( wpostmeta.meta_key = 'features' AND wpostmeta.meta_value LIKE '%test1%' ) OR 
( wpostmeta.meta_key = 'features' AND wpostmeta.meta_value LIKE '%test2%' ) OR 
( wpostmeta.meta_key = 'features' AND wpostmeta.meta_value LIKE '%test3%' ) OR
( wpostmeta.meta_key = 'features' AND wpostmeta.meta_value LIKE '%test4%' ) OR
( wpostmeta.meta_key = 'features' AND wpostmeta.meta_value LIKE '%test5%' )

注意:test1、test2、test3、test4 和 test5,我是从这个 $arr 得到的。

希望您能理解我的问题,如果您能帮助我,我将不胜感激。

谢谢:)

最佳答案

尝试类似的东西

$arr = explode(',', $features);
$conditions = array();

foreach($arr as $feature){
    $condition[] = "( wpostmeta.meta_key = 'features' AND wpostmeta.meta_value LIKE '{$feature}' )";
}
$query = "SELECT ...". join("OR",$conditions);

但是你可以简单地做一些像 wpostmeta.meta_key = 'feature' 和 wpostmet IN($features)

我认为第二种解决方案更好更快。

关于php - 如何在 MySQL 查询中编写 PHP 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22193327/

相关文章:

php - 临时允许查看照片和相册

MySQL 查询给出无效结果

sql - 使用golang返回mysql过程

php - 在我的 CMS php 中将类名组合在一起

mysql - MySQL 中的数值数据在 VB 2010 的文本框中显示为 bool 值 TRUE/FALSE

Mysql查询连接三个表

javascript - jQuery 可拖动 "game"问题

php - 在没有文件输入的表单上使用 enctype ="multipart/form-data"可以吗

javascript - 返回函数 yii 2 的结果后打开模态

java - App Engine JDO 持久类从 com.google.appengine.api.datastore.Key 迁移到 Long