0

我正在使用 EXCEL 创建一组 UPDATE 语句。很多行的列包含单引号字符作为字段值的一部分。有没有办法告诉 MySQL 使用除 " 或 ' 以外的其他 ENCLOSURE 字符?

能够将角色从标准更改为特定角色会很棒。例子 -

UPDATE table SET length=~value~, width=~value~, etc.

其中 ~ 将用于代替 " 或 ' 。

旧表的架构 -

CREATE TABLE IF NOT EXISTS `pudoitems` (
  `PUDOItem_id` int(11) NOT NULL AUTO_INCREMENT,
  `PUDO_id` int(11) DEFAULT NULL,
  `PUDO_tab_id` int(11) NOT NULL,
  `PUDOItem_make` varchar(45) DEFAULT NULL,
  `PUDOItem_model` varchar(45) DEFAULT NULL,
  `PUDOItem_equiptype` varchar(45) DEFAULT NULL,
  `PUDOItem_serial` varchar(45) DEFAULT NULL,
  `PUDOItem_weight` mediumint(9) DEFAULT NULL,
  `PUDOItem_height` varchar(10) DEFAULT NULL,
  `PUDOItem_width` varchar(10) DEFAULT NULL,
  `PUDOItem_length` varchar(10) DEFAULT NULL,
  `PUDOItem_Notes` text,
  `loads_load_id` int(11) NOT NULL,
  PRIMARY KEY (`PUDOItem_id`,`loads_load_id`),
  KEY `PUDOItem_make_idx` (`PUDOItem_make`),
  KEY `PUDOItem_model_idx` (`PUDOItem_model`),
  KEY `PUDOItem_makemodel_idx` (`PUDOItem_make`,`PUDOItem_model`),
  KEY `fk_PUDO_id` (`PUDO_id`),
  KEY `fk_pudoitems_loads1` (`loads_load_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2739 ;

新表的架构 -

CREATE TABLE IF NOT EXISTS `pudoitems_cat` (
  `PUDOItem_id` int(11) NOT NULL AUTO_INCREMENT,
  `PUDO_id` int(11) DEFAULT NULL,
  `PUDO_tab_id_01` int(11) NOT NULL,
  `PUDOItem_make_01` varchar(45) DEFAULT NULL,
  `PUDOItem_model_01` varchar(45) DEFAULT NULL,
  `PUDOItem_equiptype_01` varchar(45) DEFAULT NULL,
  `PUDOItem_serial_01` varchar(45) DEFAULT NULL,
  `PUDOItem_weight_01` mediumint(9) DEFAULT NULL,
  `PUDOItem_height_01` varchar(10) DEFAULT NULL,
  `PUDOItem_width_01` varchar(10) DEFAULT NULL,
  `PUDOItem_length_01` varchar(10) DEFAULT NULL,
  `PUDOItem_Notes_01` text,
  `PUDO_tab_id_02` int(11) NOT NULL,
  `PUDOItem_make_02` varchar(45) DEFAULT NULL,
  `PUDOItem_model_02` varchar(45) DEFAULT NULL,
  `PUDOItem_equiptype_02` varchar(45) DEFAULT NULL,
  `PUDOItem_serial_02` varchar(45) DEFAULT NULL,
  `PUDOItem_weight_02` mediumint(9) DEFAULT NULL,
  `PUDOItem_height_02` varchar(10) DEFAULT NULL,
  `PUDOItem_width_02` varchar(10) DEFAULT NULL,
  `PUDOItem_length_02` varchar(10) DEFAULT NULL,
  `PUDOItem_Notes_02` text,  
  `PUDO_tab_id_03` int(11) NOT NULL,
  `PUDOItem_make_03` varchar(45) DEFAULT NULL,
  `PUDOItem_model_03` varchar(45) DEFAULT NULL,
  `PUDOItem_equiptype_03` varchar(45) DEFAULT NULL,
  `PUDOItem_serial_03` varchar(45) DEFAULT NULL,
  `PUDOItem_weight_03` mediumint(9) DEFAULT NULL,
  `PUDOItem_height_03` varchar(10) DEFAULT NULL,
  `PUDOItem_width_03` varchar(10) DEFAULT NULL,
  `PUDOItem_length_03` varchar(10) DEFAULT NULL,
  `PUDOItem_Notes_03` text,
  `PUDO_tab_id_04` int(11) NOT NULL,
  `PUDOItem_make_04` varchar(45) DEFAULT NULL,
  `PUDOItem_model_04` varchar(45) DEFAULT NULL,
  `PUDOItem_equiptype_04` varchar(45) DEFAULT NULL,
  `PUDOItem_serial_04` varchar(45) DEFAULT NULL,
  `PUDOItem_weight_04` mediumint(9) DEFAULT NULL,
  `PUDOItem_height_04` varchar(10) DEFAULT NULL,
  `PUDOItem_width_04` varchar(10) DEFAULT NULL,
  `PUDOItem_length_04` varchar(10) DEFAULT NULL,
  `PUDOItem_Notes_04` text,
  `PUDO_tab_id_05` int(11) NOT NULL,
  `PUDOItem_make_05` varchar(45) DEFAULT NULL,
  `PUDOItem_model_05` varchar(45) DEFAULT NULL,
  `PUDOItem_equiptype_05` varchar(45) DEFAULT NULL,
  `PUDOItem_serial_05` varchar(45) DEFAULT NULL,
  `PUDOItem_weight_05` mediumint(9) DEFAULT NULL,
  `PUDOItem_height_05` varchar(10) DEFAULT NULL,
  `PUDOItem_width_05` varchar(10) DEFAULT NULL,
  `PUDOItem_length_05` varchar(10) DEFAULT NULL,
  `PUDOItem_Notes_05` text,
  `PUDO_tab_id_06` int(11) NOT NULL,
  `PUDOItem_make_06` varchar(45) DEFAULT NULL,
  `PUDOItem_model_06` varchar(45) DEFAULT NULL,
  `PUDOItem_equiptype_06` varchar(45) DEFAULT NULL,
  `PUDOItem_serial_06` varchar(45) DEFAULT NULL,
  `PUDOItem_weight_06` mediumint(9) DEFAULT NULL,
  `PUDOItem_height_06` varchar(10) DEFAULT NULL,
  `PUDOItem_width_06` varchar(10) DEFAULT NULL,
  `PUDOItem_length_06` varchar(10) DEFAULT NULL,
  `PUDOItem_Notes_06` text,
  `PUDO_tab_id_07` int(11) NOT NULL,
  `PUDOItem_make_07` varchar(45) DEFAULT NULL,
  `PUDOItem_model_07` varchar(45) DEFAULT NULL,
  `PUDOItem_equiptype_07` varchar(45) DEFAULT NULL,
  `PUDOItem_serial_07` varchar(45) DEFAULT NULL,
  `PUDOItem_weight_07` mediumint(9) DEFAULT NULL,
  `PUDOItem_height_07` varchar(10) DEFAULT NULL,
  `PUDOItem_width_07` varchar(10) DEFAULT NULL,
  `PUDOItem_length_07` varchar(10) DEFAULT NULL,
  `PUDOItem_Notes_07` text,  
  `PUDO_tab_id_08` int(11) NOT NULL,
  `PUDOItem_make_08` varchar(45) DEFAULT NULL,
  `PUDOItem_model_08` varchar(45) DEFAULT NULL,
  `PUDOItem_equiptype_08` varchar(45) DEFAULT NULL,
  `PUDOItem_serial_08` varchar(45) DEFAULT NULL,
  `PUDOItem_weight_08` mediumint(9) DEFAULT NULL,
  `PUDOItem_height_08` varchar(10) DEFAULT NULL,
  `PUDOItem_width_08` varchar(10) DEFAULT NULL,
  `PUDOItem_length_08` varchar(10) DEFAULT NULL,
  `PUDOItem_Notes_08` text,
  `PUDO_tab_id_09` int(11) NOT NULL,
  `PUDOItem_make_09` varchar(45) DEFAULT NULL,
  `PUDOItem_model_09` varchar(45) DEFAULT NULL,
  `PUDOItem_equiptype_09` varchar(45) DEFAULT NULL,
  `PUDOItem_serial_09` varchar(45) DEFAULT NULL,
  `PUDOItem_weight_09` mediumint(9) DEFAULT NULL,
  `PUDOItem_height_09` varchar(10) DEFAULT NULL,
  `PUDOItem_width_09` varchar(10) DEFAULT NULL,
  `PUDOItem_length_09` varchar(10) DEFAULT NULL,
  `PUDOItem_Notes_09` text,
  `PUDO_tab_id_10` int(11) NOT NULL,
  `PUDOItem_make_10` varchar(45) DEFAULT NULL,
  `PUDOItem_model_10` varchar(45) DEFAULT NULL,
  `PUDOItem_equiptype_10` varchar(45) DEFAULT NULL,
  `PUDOItem_serial_10` varchar(45) DEFAULT NULL,
  `PUDOItem_weight_10` mediumint(9) DEFAULT NULL,
  `PUDOItem_height_10` varchar(10) DEFAULT NULL,
  `PUDOItem_width_10` varchar(10) DEFAULT NULL,
  `PUDOItem_length_10` varchar(10) DEFAULT NULL,
  `PUDOItem_Notes_10` text,
  `loads_load_id` int(11) NOT NULL,
  PRIMARY KEY (`PUDOItem_id`,`loads_load_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=UTF16 AUTO_INCREMENT=2900 ;

PUDO_tab_id 标识给定 PUDO_id 的哪个 PUDOItem_[field]_[tag_id #]。

这是一个示例更新 -

UPDATE PUDOItems_cat SET PUDO_tab_id_01=1 ,PUDOItem_make_01=", E2," ,PUDOItem_model_01=TR3520 / TWR3520  ,PUDOItem_equiptype_01=TUGGERS ,PUDOItem_serial_01=SEE ATTACHED ,PUDOItem_weight_01=12000 ,PUDOItem_height_01=6" ,PUDOItem_width_01=8 ,PUDOItem_length_01=40 ,PUDOItem_Notes_01= WHERE PUDOItem_id =1;
UPDATE PUDOItems_cat SET PUDO_tab_id_02=2 ,PUDOItem_make_02='LOADING TIMES:' ,PUDOItem_model_02='730A - 300PM '  ,PUDOItem_equiptype_02='*CALL 1 HR PRIOR TO ' ,PUDOItem_serial_02='ARRIVAL*' ,PUDOItem_weight_02=0 ,PUDOItem_height_02='' ,PUDOItem_width_02='' ,PUDOItem_length_02='' ,PUDOItem_Notes_02='' WHERE PUDOItem_id =1;
UPDATE PUDOItems_cat SET PUDO_tab_id_01=1 ,PUDOItem_make_01=' CAT' ,PUDOItem_model_01='NDC100'  ,PUDOItem_equiptype_01='FORKLIFT' ,PUDOItem_serial_01='2HL11637' ,PUDOItem_weight_01=0 ,PUDOItem_height_01='' ,PUDOItem_width_01='' ,PUDOItem_length_01='' ,PUDOItem_Notes_01='' WHERE PUDOItem_id =2;
UPDATE PUDOItems_cat SET PUDO_tab_id_02=2 ,PUDOItem_make_02='CAT' ,PUDOItem_model_02='NDC100'  ,PUDOItem_equiptype_02='FORKLIFT' ,PUDOItem_serial_02='2HL11674' ,PUDOItem_weight_02=0 ,PUDOItem_height_02='' ,PUDOItem_width_02='' ,PUDOItem_length_02='' ,PUDOItem_Notes_02='' WHERE PUDOItem_id =2;
UPDATE PUDOItems_cat SET PUDO_tab_id_03=3 ,PUDOItem_make_03=' 2 BATTERIES' ,PUDOItem_model_03='1 CHARGER PER'  ,PUDOItem_equiptype_03='MACHINE' ,PUDOItem_serial_03='' ,PUDOItem_weight_03=45000 ,PUDOItem_height_03='8' ,PUDOItem_width_03='8' ,PUDOItem_length_03='48' ,PUDOItem_Notes_03='' WHERE PUDOItem_id =2;
UPDATE PUDOItems_cat SET PUDO_tab_id_01=1 ,PUDOItem_make_01='MIDLAND' ,PUDOItem_model_01=''  ,PUDOItem_equiptype_01='DIRT BUCKET' ,PUDOItem_serial_01='' ,PUDOItem_weight_01=4000 ,PUDOItem_height_01='' ,PUDOItem_width_01='8' ,PUDOItem_length_01='18' ,PUDOItem_Notes_01='' WHERE PUDOItem_id =16;

前 2 个 UPDATES 构建 PUDO_id = 1,而接下来的 3 个 UPDATES 构建 PUDO_id = 2,最后一个 UPDATE 构建 PUDO_id = 16。

4

2 回答 2

1

我相信这样的设置会违反 ANSI 标准。

每当我需要做这样的事情时,我会在 Excel 中使用奇怪的字符,然后我使用记事本或 Ultraedit 进行全局替换......

于 2013-08-08T17:41:10.783 回答
1

这是一个可能的解决方案,而不是您问题的直接答案

UPDATE statements而不是在 Excel中准备:

  1. 使用它最适合它 - 只需准备您的数据,留下您拥有的报价
  2. 以制表符或逗号分隔的形式将更新数据导出到文件
  3. 创建临时登台表
  4. LOAD DATA INFILE使用原样将数据加载到临时表中
  5. 发出UPDATE将更新您的事实表或表的语句或语句。
  6. DROP你的临时临时表
于 2013-08-08T17:46:40.793 回答