चूंकि आपकी क्वेरी में LIMIT 1
है आप "परिणाम" को session/user- में स्टोर कर सकते हैं। परिभाषित चर
. अभी भी दो प्रश्न लेकिन पुनर्विक्रेता; प्रत्येक कनेक्शन का अपना सत्र होता है।
<?php
$pdo = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'localonly', 'localonly');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
setup($pdo);
$query = "
INSERT INTO tbl1 (myID, myVal1, myVal2)
SELECT @foo:=myID+1, 'val1', 'val2' FROM tbl2 WHERE x=0 LIMIT 1
";
$pdo->exec($query);
foreach( $pdo->query('SELECT @foo as foo') as $row ) {
echo $row['foo'];
}
function setup($pdo) {
$pdo->exec('CREATE TEMPORARY TABLE tbl1 (myID int, myVal1 varchar(16), myVal2 varchar(16))');
$pdo->exec('CREATE TEMPORARY TABLE tbl2 (myID int, x int)');
$pdo->exec('INSERT INTO tbl2 (myID, x) VALUES (1,1),(2,1),(3,0),(4,0),(5,1)');
}
tbl2 में x=0 वाला "पहला" रिकॉर्ड है (myID=3,x=0) और स्क्रिप्ट 4
प्रिंट करती है .
इसके अलावा और संग्रहीत प्रक्रियाओं के अलावा (मेरी जानकारी के लिए) SQLServer के जैसा कुछ नहीं है। आउटपुट या पोस्टग्रेस्क्ल का रिटर्निंग MySQL के लिए क्लॉज।