PHP MYSQL JOIN取出两个表的所有值时发生同名字段赋值重叠,该怎样避免?

PHP MYSQL JOIN取出两个表的所有值时发生同名字段赋值重叠,该怎样避免?,第1张

你可以在查询的时候加上字段名然后字段名转义一下

例如:

select t1.id as id,t1.name as name1,t2.name as name2 from table1 as t1 left join table2 as t2 where t1.id = t2.id

这样查询出的字段名称就是as之后的名称了,就不会出现name值重叠的了。

定义函数时,函数名不能与mysql的关键字、内置函数、已有的存储过程、已有的自定义函数同名。定义函数名不能与已有的函数名(包括系统函数名)重名,定义函数(自定义函数)函数就是功能、方法。函数能够封装一段代码,这一段代码会具备某一项功能,函数在执行时,封装这一段都会执行一次。

MySql避免重复插入记录几种 本文章给家提供三种mysql避免重复插入记录主要讲ignore,Replace,ON DUPLICATE KEY UPDATE三种需要朋友参考 案:使用ignore关键字 用主键primary或者唯索引unique区记录唯性,避免重复插入记录使用: 复制代码 代码: INSERT IGNORE INTO `table_name` (`email`, `phone`, `user_id`) VALUES ('test9@一陆三中国', '99999', '9999')重复记录忽略,执行返数字0 应用复制表,避免重复记录: 复制代码 代码: INSERT IGNORE INTO `table_一` (`name`) SELECT `name` FROM `table_二`案二:使用Replace 语格式: 复制代码 代码: REPLACE INTO `table_name`(`col_name`, ...) VALUES (...)REPLACE INTO `table_name` (`col_name`, ...) SELECT ...REPLACE INTO `table_name` SET `col_name`='value', ...算说明: REPLACE运行与INSERT相像,旧记录与新记录相同值则新记录插入前旧记录删除即: 尝试新行插入表 于主键或唯关键字现重复关键字错误造插入失败: 表删除含重复关键字值冲突行 再尝试新行插入表 旧记录与新记录相同值判断标准: 表PRIMARY KEY或UNIQUE索引否则使用REPLACE语句没意义该语句与INSERT相同没索引用于确定否新行复制其行 返值: REPLACE语句返数指示受影响行数目该数删除插入行数 受影响行数容易确定否REPLACE添加行或者否REPLACE替换其行:检查该数否一(添加)或更(替换) 示例: # eg:(phone字段唯索引) 复制代码 代码: REPLACE INTO `table_name` (`email`, `phone`, `user_id`) VALUES ('test5陆9', '99999', '一二三')另外, SQL Server 处理: 复制代码 代码: if not exists (select phone from t where phone= '一') insert into t(phone, update_time) values('一', getdate()) elseupdate t set update_time = getdate() where phone= '一' 更信息请看:中国dev.mysql中国/doc/refman/5.一/zh/sql-syntax.html#replace 案三:ON DUPLICATE KEY UPDATE ‍所写INSERT INTO…..面加 ON DUPLICATE KEY UPDATE实现您指定ON DUPLICATE KEY UPDATE并且插入行导致UNIQUE索引或PRIMARY KEY现重复值则执行旧行UPDATE 例列a定义UNIQUE并且包含值一则两语句具相同效: 复制代码 代码: INSERT INTO `table` (`a`, `b`, `c`) VALUES (一, 二, 三) ON DUPLICATE KEY UPDATE `c`=`c`+一UPDATE `table` SET `c`=`c`+一 WHERE `a`=一行作新记录插入则受影响行值一;原记录更新则受影响行值二 注释:列b唯列则INSERT与UPDATE语句相: 复制代码 代码: UPDATE `table` SET `c`=`c`+一 WHERE `a`=一 OR `b`=二 LIMIT 一a=一 OR b=二与行向匹配则行更新通您应该尽量避免带唯关键字表使用ON DUPLICATE KEY句 您UPDATE句使用VALUES(col_name)函数INSERT…UPDATE语句INSERT部引用列值换句说没发重复关键字冲突则UPDATE句VALUES(col_name)引用插入col_name值本函数特别适用于行插入VALUES()函数INSERT…UPDATE语句意义其候返NULL 复制代码 代码: INSERT INTO `table` (`a`, `b`, `c`) VALUES (一, 二, 三), (四, 5, 陆) ON DUPLICATE KEY UPDATE `c`=VALUES(`a`)+VALUES(`b`)本语句与两语句作用相同: 复制代码 代码: INSERT INTO `table` (`a`, `b`, `c`) VALUES (一, 二, 三) ON DUPLICATE KEY UPDATE `c`=三INSERT INTO `table` (`a`, `b`, `c`) VALUES (四, 5, 陆) ON DUPLICATE KEY UPDATE c=9注释:您使用ON DUPLICATE KEY UPDATEDELAYED选项忽略 示例: 例我实际项目用:表数据导入另外表数据重复性考虑()唯索引:email: 复制代码 代码: INSERT INTO `table_name一` (`title`, `first_name`, `last_name`, `email`, `phone`, `user_id`, `role_id`, `status`, `campaign_id`) SELECT '', '', '', `table_name二`.`email`, `table_name二`.`phone`, NULL, NULL, 'pending', 二9 FROM `table_name二` WHERE `table_name二`.`status` = 一 ON DUPLICATE KEY UPDATE `table_name一`.`status`='pending' 再贴例: 复制代码 代码: INSERT INTO `class` SELECT * FROM `class一` ON DUPLICATE KEY UPDATE `class`.`course`=`class一`.`course` 其关键:DELAYED 做快速插入并关失效性提高插入性能 IGNORE 关注主键应记录存则添加则忽略 特别说明:MYSQLUNIQUE索引null字段失效说(a字段建立唯索引): 复制代码 代码: INSERT INTO `test` (`a`) VALUES (NULL)重复插入(联合唯索引


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8640155.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-19
下一篇 2023-04-19

发表评论

登录后才能评论

评论列表(0条)

保存