我有一个用户表(tbUser),其中包含列电子邮件地址和用户名,我试图删除用户名栏中的任何电子邮件地址。以下查询查找该人使用' @'的所有记录。在他们的用户名中,我想把所有内容都放在' @'的左边。 - 这足以让我弄清楚,如果它的电子邮件地址不是太严格,它是否真的是一个电子邮件地址。
SELECT LEFT(username, CHARINDEX('@', username) - 1) AS Expr1
FROM tbUser
WHERE (username LIKE '%@%')
现在我想更新所有用户名,以便它只是' @'左边的文字。但不知道该怎么做。它类似于下面的查询,但它并不完全正确。
UPDATE tbUser
SET username = (SELECT LEFT(username, CHARINDEX('@', username) - 1) AS Expr1
FROM tbUser AS tbUser_1)
WHERE (username LIKE '%@%')
答案 0 :(得分:2)
如果SELECT
完全返回您想要的内容,您应该能够更新表格,如下所示:
UPDATE tbUser
SET username = LEFT(username, CHARINDEX('@', username) - 1)
WHERE username LIKE '%@%'