问一个 MySQL 语句,在已知记录的基础上,添加新记录的问题
迷茫
迷茫 2017-04-17 11:56:50
[MySQL讨论组]

需要不停添加新数据到一个表里, 表里已有若干数据库

tableA

field1 | field2 | field3 | int4
text1 | text2 | text3 | int4

field1,field2,field3 都是目录, 按照需求添加, int4 是数值,类似id

比如
field1: 'people', field2: 'person', field3: 'john', int4: '1'
field1: 'people', field2: 'person', field3: 'peter', int4: '2'

field1: 'animals', field2: 'cat', field3: 'tom', int4: '1'
field1: 'animals', field2: 'dog', field3: 'jerry', int4: '1'

在已有数据的基础上(int4 能拿到最大值),下面的 sql 可以不停添加新纪录,然后自动 int4 + 1,

INSERT INTO tableA (field1, field2, field3, int4) SELECT 'text1' as field1, 'text2' AS field2, 'text3' AS field3, (MAX(int4)+1) AS int4 FROM tableA WHERE field1 LIKE 'text1' AND field2 LIKE 'text2' GROUP BY field1 LIMIT 1

但是在需要添加全新记录,如果数据库里记录为空, 怎么添加 int4 为 1 的记录? 因为 SELECT 拿不到数据, 所以这个 sql 没法添加新记录

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(1)
高洛峰

用mysql的ifnull函数
还有你这个坑爹的设计思路是什么应用场景。。干嘛不用id

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号