1

我正在使用 PHP 后端,使用 MySQLi 对象来使用准备好的语句。但是,我有一个问题,我需要这样的查询:

IF ( SELECT count(*) FROM table <= 3)
   INSERT INTO table2 VALUES(5,2)
// dont do anything if (SELECT count(*) FROM table > 3)

它在开始时给出语法错误并且无法理解错误是什么?

4

2 回答 2

3
$query = mysql_query('SELECT COUNT(*) AS num FROM `myTable`');
$row = mysql_fetch_assoc($query);
$total = $row['num'];
if($total <= 3)
{
    // Insert statament
}
于 2012-04-19T21:33:42.277 回答
3

让 MySQL 来做脏活,并尽可能避免与数据库的通信。

转到19.2。使用存储例程(过程和函数)并学习类似于 PL/SQL 的那些技巧。当您有多个相互依赖的查询时,您会发现更容易解决问题。

经过一些学习,您将能够编写一个存储过程,该过程在插入表之前检查逻辑表达式。

类似的东西(语法可能在这里失控 - 只是例子):

CREATE PROCEDURE myProcedure(IN myCap INT) 
BEGIN 
  DECLARE rowCount INT; 
  SELECT count(*) FROM table INTO rowCount;
  IF rowCount <= myCap THEN
    INSERT INTO [...]
  END IF;
END;
于 2012-04-19T21:52:36.087 回答