Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.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
sql部分更改表中一列中的所有数据,如将所有电子邮件地址从@gmail更改为@yahoo_Sql_Sql Server - Fatal编程技术网

sql部分更改表中一列中的所有数据,如将所有电子邮件地址从@gmail更改为@yahoo

sql部分更改表中一列中的所有数据,如将所有电子邮件地址从@gmail更改为@yahoo,sql,sql-server,Sql,Sql Server,我有一个表格,上面有所有学生的姓名和电子邮件ID。 电子邮件ID以@yahoo.com或rediff.com等结尾,有没有办法将它们全部改为@gmail.com? 我正在使用sql server。您将使用replace(): 如果要更改表中的数据,也可以将其放入更新中 这对于电子邮件是安全的,因为@在电子邮件地址中只出现一次 update t set email = replace(email, '@yahoo.com', '@email.com') where email li

我有一个表格,上面有所有学生的姓名和电子邮件ID。 电子邮件ID以@yahoo.com或rediff.com等结尾,有没有办法将它们全部改为@gmail.com?
我正在使用sql server。

您将使用
replace()

如果要更改表中的数据,也可以将其放入
更新中

这对于电子邮件是安全的,因为
@
在电子邮件地址中只出现一次

update t
    set email = replace(email, '@yahoo.com', '@email.com')
    where email like '%@yahoo.com';
试试像这样的东西

BEGIN TRAN

UPDATE t
SET email = 
  REPLACE(
    emailIn
    , SUBSTRING(
        emailIn
        , CHARINDEX('@', emailIn)
        , LEN(emailIn) - CHARINDEX(emailIn, '@')
    )
    , '@gmail.com'
  )

COMMIT TRAN

使用事务处理确保您拥有所需的电子邮件地址。回滚要比恢复备份容易得多。

如果您使用的是mysql,请运行以下查询:

      UPDATE your_table_name 
      SET your_column_name = REPLACE(your_column_name,
      '@yahoo.com','@gmail.com ');

同样,您也可以使用@rediff.com,将其替换为@yahoo.com等等。

感谢您的快速响应。但所有的电子邮件地址都不一样。有些是雅虎,rediff等。我希望他们都改成gmail。com@ZaheenHaris . . . 你应该问另一个问题。这封信显然是关于以“yahoo.com”结尾的电子邮件。在回答问题后更改它是不友好的,因为这样的更改会使答案无效。请更新标题以保持一致性。你的标题是“gmail对雅虎”,但你的问题是“雅虎对gmail”。在问这个问题之前,你应该试着自己解决这个问题。如果您已经尝试以某种方式解决此问题,请发布您尝试过的内容。您的查询中的emailIn是什么?@ZaheenHaris抱歉,emailIn只是您要更改的电子邮件地址的占位符。@ZaheenHaris如果解决了您的问题,请将此答案标记为已接受!~诚恳地说,从无人应答的队列中。你应该将该链接中的要点添加到你的答案中,而不是发布链接。您所指的页面可能会更改或消失,从而导致您的答案过时。您仍然可以编辑您的评论并添加这些详细信息。无需等待下一次:-)
      UPDATE your_table_name 
      SET your_column_name = REPLACE(your_column_name,
      '@yahoo.com','@gmail.com ');