Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我如何解决这个问题?用php还是mysql?_Mysql - Fatal编程技术网

我如何解决这个问题?用php还是mysql?

我如何解决这个问题?用php还是mysql?,mysql,Mysql,我有一个问题是 SELECT m.msgFrom, m.msgTo, m.msgID, m.subject, m.dateTime, a.username FROM mailbox m JOIN accounts a ON (m.msgFrom = a.id) WHERE msgTo = $user OR msgFrom = $user AND parentID = 0 ORDER BY dateTime DESC LIMIT 250 是否可以

我有一个问题是

 SELECT m.msgFrom, m.msgTo, m.msgID, m.subject, m.dateTime, a.username 
 FROM mailbox m 
 JOIN accounts a ON (m.msgFrom = a.id) 
 WHERE msgTo = $user 
      OR msgFrom = $user 
      AND parentID = 0 
 ORDER BY dateTime DESC 
 LIMIT 250
是否可以更改此查询,以便根据
msgTo
msgFrom
的值更改上的

我有一个用户变量。如果用户变量等于
msgTo
获取
username
,其中
id
等于
msgFrom
。如果用户变量等于
msgFrom
获取
username
,其中
id
等于
msgTo


我希望我解释得足够好?

您应该能够在
ON
子句中使用
IF
语句。这将与对方用户的帐户合并。(即,如果消息来自
$user
,则
用户名
将用于接收用户,如果消息来自
$user
,则
用户名
将用于发送用户。)


if与php中的三元语法相同吗?虽然语法不同,但子句的顺序是相同的。也就是说,首先是条件,然后是值(如果为真),最后是值(如果为假)。第一次工作非常棒。我想你错过了一个最后的妄想症我应该投反对票,是吗?不过我不会的,我不是驴子
SELECT m.msgFrom, m.msgTo, m.msgID, m.subject, m.dateTime, a.username 
FROM mailbox m JOIN accounts a ON a.id=IF(msgTo=$user, msgFrom, msgTo)
WHERE msgTo = $user OR msgFrom = $user AND parentID = 0 
ORDER BY dateTime DESC LIMIT 250