Mysql插入列就像通配符查询一样

时间:2014-03-11 22:35:10

标签: mysql

我正在尝试将值插入到其中一个列值包含特定字符串的每一行中。

INSERT INTO `cases_index`(`related`) VALUES (`Alabama`) WHERE `court` LIKE '%Alabama%'

所以在上面的示例中我有一行有三列:

法庭|联邦|相关

我想在法院专栏中包含“阿拉巴马州”一词(即“阿拉巴马州地方法院”)的任何一行的“相关”栏中插入“阿拉巴马”一词。

上面的行吐出以下语法错误:

  

1064 - 您的SQL语法出错;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   靠近'WHERE cases_indexcourt)LIKE'%Alabama%''在第1行

任何想法我做错了什么?

2 个答案:

答案 0 :(得分:5)

除了查询中的语法错误之外,如果要更新现有行,则应使用UPDATE查询:

UPDATE cases_index
SET related='Alabama'
WHERE court LIKE '%Alabama%'

为了完整起见,INSERT查询会向表中添加新行,因此不允许WHERE中的INSERT子句。

答案 1 :(得分:1)

虽然您正在寻找UPDATE答案,但INSERT确实允许WHERE子句。

请参阅MySQL documentation

 INSERT INTO tbl_temp2 (fld_id)
    SELECT tbl_temp1.fld_order_id
    FROM tbl_temp1 WHERE tbl_temp1.fld_order_id > 100;

但是答案就是trgdor所写的:

UPDATE cases_index
SET related='Alabama'
WHERE court LIKE '%Alabama%'