У меня этот длинный запрос mysql, и я пытаюсь найти выборку строк, которые старше, чем данная дата $lastmsg
.Работа с датами в mysql?
это код им с помощью:
$result="SELECT
u.username, u.picture,m.id, m.user_note, m.reply_id, m.reply_name, m.recycle_id, m.recycle_name, m.dt
FROM
relationships r,
notes m,
user u
WHERE
m.user_id = r.leader
AND
r.leader = u.user_id
AND
r.listener = ".$_SESSION['user_id']."
UNION
select username, picture,id, user_note, reply_id, reply_name, recycle_id, recycle_name, dt
from user u, notes b
where u.user_id = b.user_id
AND
b.user_id =".$_SESSION['user_id']."
AND
WHERE dt < '$lastmsg'
ORDER BY dt DESC LIMIT 10";
mysql_query($result) or die(mysql_error().$result);
жаль длинного грязного кода, запрос работал, пока я не добавил этот $ lastmsg, где положения.
p.s. дт является DATETIME
и $ lastmsg является 2010-09-20 12:53:43
им ошибки получаю:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where dt <'2010-09-20 12:53:43' ORDER BY dt DESC LIMIT 10' at line 20SELECT u.username, u.picture,m.id, m.user_note, m.reply_id, m.reply_name, m.recycle_id, m.recycle_name, m.dt FROM relationships r, notes m, user u WHERE m.user_id = r.leader AND r.leader = u.user_id AND r.listener = 2 UNION select username, picture,id, user_note, reply_id, reply_name, recycle_id, recycle_name, dt from user u, notes b where u.user_id = b.user_id and b.user_id =2 and where dt <'2010-09-20 12:53:43' ORDER BY dt DESC LIMIT 10
Если '$ lastmasg' ==' 2010-09-20 12: 53: 43'', дополнительная цитата приведет к синтаксической ошибке. Что _is_ сообщение об ошибке mysql? – Wrikken
Я только что отредактировал мой вопрос, ошибка в нем! – getaway