如果 SQL 表包含行,则插入不同的内容
Posted
技术标签:
【中文标题】如果 SQL 表包含行,则插入不同的内容【英文标题】:Insert different content IF SQL table contains rows [duplicate] 【发布时间】:2021-08-22 20:22:15 【问题描述】:我正在尝试根据 SQL 表是否有行来插入不同的内容。到目前为止,查询将检查sortingOrder 的最大值是多少,然后+ 1。但是,如果表中没有行,则此查询将中断。如何实现 if 语句来检查表是否没有行,然后是否没有将排序顺序设置为“1”。
INSERT INTO faq (question, answer, sortingOrder)
VALUES ('$questionData', '$answerData', (SELECT MAX(sortingOrder) FROM faq C) +1)
谢谢
【问题讨论】:
你为什么要自己增加sortingOrder
而不是使用AUTO_INCREMENT
?
【参考方案1】:
最好的解决方案是使sortingOrder
成为AUTO_INCREMENT
列。数据库将自动分配值,为每一行递增。
如果由于某种原因不能这样做,您可以检查子查询是否返回 NULL
并将其替换为 1
。
INSERT INTO faq (question, answer, sortingOrder)
SELECT '$questionData', '$answerData', IFNULL(MAX(sortingOrder)+1, 1)
FROM faq
【讨论】:
以上是关于如果 SQL 表包含行,则插入不同的内容的主要内容,如果未能解决你的问题,请参考以下文章