MySQL的if语句2表

我必须处理已开发的系统,我们有被设置成一个MySQL表的用户的用户。 有一个叫users_preferences第二个表。 该表存储用户的隐私设置。 这是除了它是没有必要对每一个用户的记录一切ok。 如果没有记录,我不得不假定用户是公共的。 这就是问题的所在 - 我想要在users表中进行搜索的基础上,users_preferences表。 我至今是:

SELECT users.id AS id, users.username AS username, users.avatar AS avatar, IF(users_preferences.privacyControls is null OR users_preferences.privacy = 0), 0, 1) AS userPrivacy FROM users, users_preferences WHERE users_preferences.userid = users.id AND userPrivacy = 0 AND users.username LIKE '%demo_user%'

该查询无效,并抛出一个错误,但它会给你什么,我想要做一个基本的想法 - 我要选择已设置users_preferences.privacy = 0的用户(或者没有这样的记录)。 提前致谢。

--------------解决方案-------------

SELECT
users.id AS id,
users.username AS username,
users.avatar AS avatar,
IFNULL(users_preferences.privacyControls, 0) AS userPrivacy
FROM
users
LEFT JOIN users_preferences ON users_preferences.userid = users.id
WHERE
IFNULL(users_preferences.privacyControls, 0) = 0
AND users.username LIKE '%demo_user%'

尝试这个:

SELECT a.ID, a.username, a.avatar
FROM Users a LEFT JOIN Users_Preferences b ON
a.ID = b.userID
WHERE (b.userPrivacy = 0 OR b.userID IS NULL) AND
a.Username LIKE '%demo_user%'

现在,您可以省略userPrivacy因为你过滤userPrivacy 0它已经了解,上述结果都是公开的用户。 或者你也可以像这样做。

SELECT a.ID, a.username, a.avatar, 'PUBLIC USER' as userPrivacy
FROM Users a LEFT JOIN Users_Preferences b ON
a.ID = b.userID
WHERE (b.userPrivacy = 0 OR b.userID IS NULL) AND
a.Username LIKE '%demo_user%'

分类:MySQL的 时间:2012-01-01 人气:0
本文关键词: 数据库MySQL,if语句
分享到:

相关文章

  • 如何在mysql数据库和预处理语句插入多行一次? 2013-03-20

    我想在这个问题上的准备语句使用staticsan's答案. 让我们这个例子: $stmt = $mysqli->prepare("INSERT INTO something (userid, time, title) VALUES (?, ?, ?)"); $stmt->bind_param('iis', $userid, time(), $title); $stmt->execute(); 在staticsan's答案爆阵列添加所有的值到MySQL的语句,以便最终我

  • 单MySQL查询语句分开 2012-01-08

    怎样区分在一个MySQL查询语句? 它是一个分号? 我不认为它很重要,但我写的声明由PHP函数调用 编辑:问题是,我似乎没有udnerstand的UPDATE语法,您可以执行与1 UPDATE语句感谢多个字段 --------------解决方案------------- 使用mysqli_功能(文档),可以使用在相同的字符串传递多个查询mysqli_multi_query (文档) 从文档的例子: /* check connection */ if (mysqli_connect_errno(

  • Python的MYSQL update语句 2012-04-28

    我试图让这个Python的MYSQL更新语句正确的是(带变量): cursor.execute ("UPDATE tblTableName SET Year=%s" % Year ", Month=%s" % Month ", Day=%s" % Day ", Hour=%s" % Hour ", Minute=%s" Minute "WHERE Server=%s " % Server

  • 我无法通过我的IP地址作为输入到我的数据库MySQL中usnig C# 2013-04-19

    我不能使用C#我的代码通过我的IP地址输入到我的数据库MySQL中: string Query = ("SELECT mobile FROM UserDetails where machine_ip=" +ipaddress); 它工作正常,如果是一个字符串,它看起来像这样:"1234567890",但没有按工作,如果它看起来是这样的:"127.0.0.0" --------------解决方案------------- 尝试这个: "

  • 我怎样才能看到使用PDO时,它进入数据库的SQL语句? 2013-07-31

    我怎样才能看到使用PDO时,它进入数据库的SQL语句? --------------解决方案------------- 如果你正在使用MySQL,使查询日志? 我不知道如何与裸PDO做到这一点,但如果你在一个包裹PDO Zend_Db_Adapter ,那么你可以使用Zend_Db_Profiler. 然后,你就可以看到参数化查询,连同参数值. 此外,它的分析,即测量该查询执行时间.

  • Rails没有重新测试数据库MySQL的看法,即使config.active_record.schema_format =:SQL 2014-10-08

    我们在通过一个迁移的执行(SQL)语句创建,我们的开发和测试数据库MySQL的一些意见. Rails的默认schema.rb创建这些意见表. 当config.active_record.schema_format设置为:SQL,根本不是创造了这些意见. 是否有设置,以确保在测试数据库,这些意见被重新创造的呢? 如果没有,任何人都可以提出一个解决方法吗? 注意,该show create table的这个观点是这样的: CREATE ALGORITHM=UNDEFINED DEFINER=`root

  • 在数据库级预处理语句 2014-11-16

    问题 所以我在写我的基于Web的应用程序,它照在我的"杜尔,你的东西是敞开的SQL注入和诸如此类的东西!重写DB类!" 目前,我正在重新写我的$db类的,我有一个显著的麻烦了解如何我应该实现准备好的发言. 先前... 我以前用的是这样的: $db->runQuery("SELECT * FROM someTable WHERE someField = '$var1'"); while ($result = mysql_fetch_array($db->r

  • 这是MySQL查询语句是否正确? 2012-04-14

    我想知道这是否MySQL的语句将被正确执行, "SELECT sum(price) FROM products WHERE productid IN (SELECT productid FROM shoppingcart WHERE sessionid=".$this->$sessionid.")" 如果没有,请给我指点到哪里我错了. 谢谢 --------------解决方案------------- 我敢肯定,你的意思 $this->sessioni

  • MySQL的语句来得到所有行的列的值,其中另一列的值=指定值 2012-05-01

    可能有人请给我一个MySQL的语句,将获得列学生的价值,在所有行,列老师的值等于查尔斯? --------------解决方案------------- 如果这个信息是在同一个表,然后 select student from table_name where teacher = 'charles' 如果你有3个表像它应该是(教师,学生,男:对teachers_students否表),请评论,因为那么你需要一个连接.

  • 在MySQL select语句回退状态 2012-10-19

    我想提出一个条件到MySQL的语句. 如果这甚至有可能? 这是我目前的mysql的SELECT语句 SELECT * FROM `validproduct` WHERE `visible` = 1 AND `typeid` = 2 AND `sizeid` = 3 GROUP BY `productid` 所以此刻,我在选择产品sizeid = 3.我想要做的是选择具有大小= 1的产品,如果不存在,然后选择sizeid = 3. 我validproducts表中包含的产品与它(这反过来有不同的定

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.482 (s). 10 q(s)