mysql ÔõÑù²ÅÄܶÔͬһÕűí²éѯºóÔÙ¸üÐÂ?
Çë¸ßÊÖÖ¸µã,ÎÒ¶ÔÒ»Õűí²éѯºóÔÙ¸üÐÂ,²éѯÊÇ×Ó²éѯ,±¨´í:
You can't specify target table 'a_table' for update in from clause
ÍêÕûSQLÓï¾äÊÇ
UPDATE a_table SET STATUS=0 WHERE ID=(SELECT MIN(ID) from a_table WHERE STATUS=1 AND SID=12321);
ÕâÊÇMYSQL¾ö¶¨Á˶ԴËд·¨²»¼æÈÝÂð?ÓÐʲô·½·¨¿ÉÒÔ²»Óòð·ÖÈËÁ½Ìõ?
mysql²»ÔÊÐí¸üлòÕßɾ³ýÒ»¸ö±íÖÐÊý¾ÝµÄͬʱ´Óͬһ¸ö±íÖвéѯ£¬ÓÃÁ¬½Ó²éѯ¡£
SQL code:
UPDATE a_table a INNER JOIN
(SELECT MIN(id) mid
from a_table WHERE status=1 AND sid=12321) b
ON a.id=b.mid
SET a.status=0
UPDATE a_table A ,(SELECT MIN(ID) AS MI from a_table WHERE STATUS=1 AND SID=12321) B
SET A.STATUS=0
WHERE A.ID=B.MI;
Ïà¹ØÎÊ´ð£º
ÎÒÊÇÓÃmysql×Ô´øµÄC API
if(mysql_real_connect(&mysql,"125.0.0.108","root","root","home",3306,NULL,0))
{
AfxMessageBox("Êý¾Ý¿âÁ¬½Óʧ°Ü") ......
ÎÒÒÔǰ°²×°ÁËÒ»´Î£¬ºóÀ´Ð¶ÔØÁË£¬ÏÖÔÚÔÙ°²×°µÄʱºò£¬Ìáʾ´íÎó£ºError 1305.Error reading from file C:DOCUME~1\LOCALS~1\Temp\mysql_server.msi.Verify that the file exists and that you can access it.
¿ÉÊÇÎÒÕÒ ......
ÇëÎÊÏÂÄܲ»ÄÜÔÙwindows϶¨ÆÚÇå¿ÕmysqlÒ»¸ö±íÖеÄÈ«²¿Êý¾Ý£¬ÓÃPHPʵÏÖ£¡
лл¸÷λÁË
¾Í±ÈÈçÒ»¸öÐÇÆÚÇå¿ÕÒ»´Î
±ÈÈçÿ¸öÐÇÆÚÁùÁãµãÇå¿ÕÒ»´Î£¡
ллÁË
¼Æ»®ÈÎÎñ...php....sql...truncate....OK
Äã¾ÍÕâ½ÓÔÚҳà ......
SQL code:
create PROCEDURE aa(SqlCMD1 varchar(8000),SqlCMD2 varchar(8000),SqlCMD3 varchar(8000))
begin
declare exit handler for sqlexception rollback;
start TRANSACTION;
EXECUTE SqlCMD1;
EXE ......
SQL code:
CREATE PROCEDURE A()
BEGIN
DECLARE 'Constraint Violation'
CONDITION FOR sqlexception;
DECLARE EXIT HANDLER FOR
'Constraint Violation' ROLLBACK;
BEGIN TRAN ......