SELECT
*
FROM
(`users`)
JOIN `artistprofiles` AS art
ON `art`.`user_id` = `users`.`id`
WHERE WEEKDAY(users.date_created) = 'WEEKDAY(WEEKDAY(NOW()))'
AND `users`.`status_enum` = 'aproved'
AND `users`.`status` = 1
ORDER BY `users`.`email_process` DESC 这个查询有什么问题。它给了我错误的结果
发布于 2014-03-26 08:27:07
这是错误的:
WHERE WEEKDAY(users.date_created) = 'WEEKDAY(WEEKDAY(NOW()))' 示例:
select
@wd:=WEEKDAY(curdate()) wd,
@str:='WEEKDAY(WEEKDAY(NOW()))' str,
@wd=@str,
@wd=WEEKDAY( now() ) ;结果:
+------+-------------------------+----------+----------------------+
| wd | str | @wd=@str | @wd=WEEKDAY( now() ) |
+------+-------------------------+----------+----------------------+
| 2 | WEEKDAY(WEEKDAY(NOW())) | 0 | 1 |
+------+-------------------------+----------+----------------------+在您的查询中,您将周日值与文字字符串'WEEKDAY(WEEKDAY(NOW()))'进行比较。由于它们不匹配,它返回一个false,因此您会看到错误的结果。
检查列的周日和现在的周日,
Change
WHERE WEEKDAY(users.date_created) = 'WEEKDAY(WEEKDAY(NOW()))' 到
WHERE WEEKDAY(users.date_created) = WEEKDAY( NOW() ) 发布于 2014-03-26 08:16:03
就像这样:
SELECT * FROM (`users`) JOIN `artistprofiles` AS art ON `art`.`user_id` = `users`.`id` WHERE WEEKDAY(users.date_created) = WEEKDAY(NOW()) AND `users`.`status_enum` = 'aproved' AND `users`.`status` = 1 ORDER BY `users`.`email_process` desc'使它成为一个字符串。所以你没有平日的时间。
您可能需要阅读以下内容:When to use single quotes, double quotes, and backticks in MySQL
https://stackoverflow.com/questions/22654938
复制相似问题