是否可以使用if - >在MySQL的哪里?

时间:2013-08-28 21:22:56

标签: mysql

我有一个用户使用某些数据创建的模板列表(数据类型并不重要)。模板存储在一个表中,其private字段为enum,其值为0,1表示false / true。 主要思想是每个用户都可以创建一个只能由他看到的私有模板,所有其他模板都可以看到所有系统用户。所以我的sql应该是这样的:

SELECT
    `templates`.`id`,
    `templates`.`name`,
    `templates`.`description`,
    `templates`.`datetime`,
    `users`.`username`
FROM
    (`templates`)
JOIN `users` ON `templates`.`user_id` = `users`.`id`
-- WHERE
    -- `users`.`id` <> 1 AND `templates`.`private` = 0
ORDER BY
    `templates`.`datetime` DESC
LIMIT 5

where中我说我需要除私人以外的所有行,而不是我的身份证,但它会错过我自己的私人模板......

1 个答案:

答案 0 :(得分:1)

似乎没有理由加入users表。您可以使用

获取所有公开和自己的私人模板
SELECT
    `templates`.`id`,
    `templates`.`name`,
    `templates`.`description`,
    `templates`.`datetime`,
FROM
    `templates`
WHERE
    `templates`.`user_id` = 42 OR `templates`.`private` = 0

我假设当前用户的id为42,在构造查询时用实际值替换它。