首页 > 解决方案 > 如何在MYSQL查询WHERE语句中创建IF语句

问题描述

这可以用SQL来完成吗?

我需要根据 $query 是否为false WHERE (u.id_user = ".$userId." OR fu.id_user = ".$userId." OR ff.id_user = ".$userId.")"ELSE来进行 SQL 选择"$query";

这是我必须满足两个条件的起点:

  $validatedSearchData = array(
     "q"=>strip_tags($_GET["q"])
  );

  $query= " AND a.tags LIKE ".lib::$db->qstr("%".$validatedSearchData["q"]."%");

  $feed = lib::$db->GetAll("SELECT SQL_CALC_FOUND_ROWS
                                         a.*,
                                         u.name,
                                         fu.id_user AS fu_user_id,
                                         ff.id_followed_user AS ff_user_id
                                  FROM feed AS a
                                  LEFT JOIN userfollow AS fu ON a.id_author = fu.id_user
                                  LEFT JOIN userfollow AS ff ON a.id_author = ff.id_followed_user
                                  INNER JOIN user_profiles AS u ON a.id_author = u.id_user
                                  WHERE (u.id_user = ".$userId." OR fu.id_user = ".$userId." OR ff.id_user = ".$userId.")" . $query. "
                                  GROUP BY a.id_article
                                  ");

标签: phpmysqlsql

解决方案


更改此行

$query= " OR a.tags LIKE ".lib::$db->qstr("%".$validatedSearchData["q"]."%");

用 OR 代替 AND


推荐阅读