mysql - 如何在 'IF' 语句中使用 'SELECT' 并在 mysql 上插入

标签 mysql

我的 table 是

id_stuff | kd_insert | name_stuff | date_createdd 
1        | 1         | example    | 2018-01-01

我像这样在 mysql 中创建查询

SELECT IF ((DATE_FORMAT(NOW(),'%Y-%m') > DATE_FORMAT(MAX(date_createdd),'%Y-%m')), 
(
  INSERT INTO tabless (name_stuff) VALUES ('stuff')
), 
(
 null
)
 ) FROM tabless GROUP BY id_stuff ORDER BY kd_insert

运行后,为什么会出现这样的错误

Error Code: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INTO tabless (name_stuff) VALUES ('stuff').

以及如何创建正确的选择条件然后插入? 谢谢

最佳答案

我认为不可能编写这样的插入语句。 你可以这样做 -

SELECT
  if(
    (DATE_FORMAT(NOW(), '%Y-%m')) > DATE_FORMAT(MAX(date_createdd), '%Y-%m'),
    (@value = 'stuff'),
    null
  )
FROM
  tabless
GROUP BY
  id_stuff
ORDER BY
  kd_insert;
INSERT INTO tabless (name_stuff) VALUES ('stuff');

关于mysql - 如何在 'IF' 语句中使用 'SELECT' 并在 mysql 上插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48885873/

相关文章:

php - 在 PHP 中循环时出现奇怪的 API 问题

php - 可能被盗的本地网络服务器上的双向加密

来自 MYSQL 的 PHP 选项值

mysql - 当我调用存储过程时 mysql 中的错误代码 1414

mysql - 什么相当于 Oracle 数据库的 Number(4) 到 MySQL 数据类型?

MySQL:选择特定日期之前的最近日期

php - Laravel if 选项值 ==

mysql - 改进查询

php - mysql如何/何时编译存储过程?

mysql - 在mysql中存储固定数量的项目