Mysql Concat字符串为`"@gmail“;删除用户名并忽略某些行

Mysql Concat字符串为`"@gmail“;删除用户名并忽略某些行,mysql,concat,Mysql,Concat,我有一个表Table1,其中包含以下字段Username NumberID CodeUser Company Username NumberID code用户公司 用户1 12453 245克 用户2 25145T Y 用户3 1845Z/500克 用户4 65421 3452 Y 用户5 13254/076 Y 我将得到一个查询结果,其中将显示user1和user4行,这意味着忽略CodeUser为空或以//code>开头的字符,但如果Company=G(这意味着user1应该显示user1@

我有一个表Table1,其中包含以下字段Username NumberID CodeUser Company

Username NumberID code用户公司
用户1 12453 245克
用户2 25145T Y
用户3 1845Z/500克
用户4 65421 3452 Y
用户5 13254/076 Y

我将得到一个查询结果,其中将显示
user1
user4
行,这意味着忽略
CodeUser
为空或以
//code>开头的字符,但如果
Company=G
(这意味着
user1
应该显示
user1@gmail.com

当我单独进行查询时,我会得到结果,但是当我尝试在一个查询中组合时,我会出错

1. SELECT Username, CONCAT( Username, "@gmail.com" ) ,NumberID, CodeUser, Company
FROM `Table1` 
WHERE Company = 'G';


2. SELECT Username,NumberID,CodeUser,Company
FROM Table1
WHERE CodeUser >'' AND CodeUser NOT LIKE '/%'

你能帮我把这个问题合并成一个问题吗?

我以为你已经有了所有的答案

SELECT Username,
  CASE WHEN Company='G' THEN 
      CONCAT(Username, '@gmail.com') ELSE '' END AS GMail,
  NumberID, CodeUser, Company 
FROM Table1 WHERE CodeUser >'' AND CodeUser NOT LIKE '/%'
这是你想要的吗

SELECT (case when company = 'G' then CONCAT(Username, '@gmail.com'
             else UserName
        end) as username,
       NumberID, CodeUser, Company
FROM Table1
WHERE (Company = 'G') or
      (CodeUser > '' AND CodeUser NOT LIKE '/%');

再次感谢@Tim3880。它运行良好。在上次回答之后,我不得不添加新列,然后出现了concat问题。现在一切正常。你的回答也帮助我建立了更多的查询。嗨,Tim3880,嗨,我又回来了。我正试图找到一种方法来去除字段中的某些字符。例如,在表2中,我在字段用户名user1@gmail.com, user2@gmail.cometc`,我如何删除@gmail.com并只留下用户名的第一部分,即user1…再次感谢我同时得到了这个有效的
updatetable2 SET username=REPLACE(username,'@gmail.com');
谢谢。感谢Gordon的帮助。这很有帮助。