我正在使用 PHP 后端,使用 MySQLi 对象来使用准备好的语句。但是,我有一个问题,我需要这样的查询:
IF ( SELECT count(*) FROM table <= 3)
INSERT INTO table2 VALUES(5,2)
// dont do anything if (SELECT count(*) FROM table > 3)
它在开始时给出语法错误并且无法理解错误是什么?
我正在使用 PHP 后端,使用 MySQLi 对象来使用准备好的语句。但是,我有一个问题,我需要这样的查询:
IF ( SELECT count(*) FROM table <= 3)
INSERT INTO table2 VALUES(5,2)
// dont do anything if (SELECT count(*) FROM table > 3)
它在开始时给出语法错误并且无法理解错误是什么?
$query = mysql_query('SELECT COUNT(*) AS num FROM `myTable`');
$row = mysql_fetch_assoc($query);
$total = $row['num'];
if($total <= 3)
{
// Insert statament
}
让 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;