MYSQL中的查询表。mysql select语句中的IF语句,如果字段为空,则左连接以获取替换值

Cwiggo

我有一个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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在php中替换mysql查询表前缀

来自分类Dev

MySQL查询从联接表中获取SUM

来自分类Dev

MySQL查询以获取表中的行位置

来自分类Dev

查询从多个表中获取数据MySQL

来自分类Dev

从查询结果中获取mysql表名

来自分类Dev

mysql查询中的if语句

来自分类Dev

在表中插入记录时在MySql中查询空异常

来自分类Dev

MySQL查询-根据不同表中的列名获取行值

来自分类Dev

MySQL子查询仅从JOIN表中获取最新值

来自分类Dev

mySQL 查询仅检索左表中的记录

来自分类Dev

连接多个表的MySQL查询

来自分类Dev

用mysql查询连接表?

来自分类Dev

连接2个表Mysql的查询中的计算

来自分类Dev

连接2个表Mysql的查询中的计算

来自分类Dev

在mysql select语句中重用内部查询

来自分类Dev

在MySQL中的SELECT查询中联接3个表

来自分类Dev

MYSQL查询以从表中获取每月消费数据

来自分类Dev

MySQL选择查询,从多个表中获取数据

来自分类Dev

MySQL查询从两个表中获取值

来自分类Dev

MySQL查询-帮助从2个表中获取数据

来自分类Dev

mysql查询未从表中获取所有元素

来自分类Dev

在单个查询中从多个表获取数据-mysql

来自分类Dev

MySQL查询从三个表中获取总数

来自分类Dev

MySql查询从库存表中获取未售出的产品

来自分类Dev

使用单个查询从mysql表中删除csv文件值

来自分类Dev

MySQL查询表中的随机唯一值

来自分类Dev

MySQL查询以在第二张表中查找值

来自分类Dev

检查php mysql查询中的两个表值

来自分类Dev

Mysql中的if语句选择查询