我有一个mysql问题
如果用户已登录,我将使用user_id填充表格。如果他们未登录,则使用其姓名,电子邮件和联系电话填写表格。因此,在这种情况下,如果用户已登录/注销,则可以提交查询。
我通过检查用户ID是否在表中来检查查询用户在提交查询时是否已登录。因此,我可以从l_users表中获取他们的姓名,电子邮件和联系方式。
有没有可以为我实现此目标的mysql代码?
所以..
如果user_id为空,请从当前表获取名称,电子邮件和联系人。否则,使用user_id从l_users表中获取姓名,电子邮件和联系电话。
谁能帮我解决方案?
我已经在mysql中看到了CASE函数,但是我一点都不熟悉。我有逻辑。但我不能将其转换为代码:D
谢谢
下表图片:
回答:
$q = " SELECT c.id,
c.user_id,
IFNULL(u.fn, c.name) AS name,
IFNULL(u.account_email, c.email) AS email,
IFNULL(u.telephone, c.contact) AS contact,
c.subject,
c.comment,
c.registered
FROM l_contact_us c
LEFT JOIN l_users u
ON c.user_id = u.id
ORDER BY c.registered
";
使用ISNULL
功能。
SELECT ISNULL((SELECT name FROM a_table WHERE user_id = @usr),
(SELECT name FROM i_user WHERE user_id = @usr)) AS name,
ISNULL((SELECT [address] FROM a_table WHERE user_id = @usr),
(SELECT [address] FROM i_user WHERE user_id = @usr)) AS a_address
FROM DUAL
或使用左外部联接:
SELECT ISNULL(t1.name, t2.name) AS name,
ISNULL(t1.address, t2.address) AS a_address
FROM a_table t1
LEFT JOIN i_user t2 ON t1.user_id = t2.user_id
WHERE t1.user_id = @usr
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句