Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL एक चर आकार चर सूची के साथ तैयार बयान

मैं कुछ समाधानों के बारे में सोच सकता हूं।

एक समाधान अस्थायी तालिका बनाना हो सकता है। प्रत्येक पैरामीटर के लिए तालिका में एक इन्सर्ट करें जो आपके पास क्लॉज में होगा। फिर अपनी अस्थायी तालिका के विरुद्ध एक साधारण जुड़ाव करें।

ऐसा कुछ करने का एक और तरीका हो सकता है।

$dbh=new PDO($dbConnect, $dbUser, $dbPass);
$parms=array(12, 45, 65, 33);
$parmcount=count($parms);   // = 4
$inclause=implode(',',array_fill(0,$parmcount,'?')); // = ?,?,?,?
$sql='SELECT age, name FROM people WHERE id IN (%s)';
$preparesql=sprintf($sql,$inclause);  // = example statement used in the question
$st=$dbh->prepare($preparesql);
$st->execute($parms);

मुझे संदेह है, लेकिन मेरे पास कोई सबूत नहीं है कि पहला समाधान बड़ी सूचियों के लिए बेहतर हो सकता है, और बाद में छोटी सूचियों के लिए काम करेगा।

@orrd को खुश करने के लिए यहां एक संक्षिप्त संस्करण है।

$dbh=new PDO($dbConnect, $dbUser, $dbPass);
$parms=array(12, 45, 65, 33);
$st=$dbh->prepare(sprintf('SELECT age, name FROM people WHERE id IN (%s)',
                          implode(',',array_fill(0,count($parms),'?'))));
$st->execute($parms);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQLSTATE [HY093]:अमान्य पैरामीटर संख्या:पैरामीटर परिभाषित नहीं किया गया था

  2. एक टेबल में कई रैंक

  3. MySQL में MAX () बनाम ग्रेटेस्ट ():क्या अंतर है?

  4. ऑटो वेतन वृद्धि प्राथमिक गिनती में अंतराल छोड़ रहा है

  5. मौजूदा तालिका में विदेशी कुंजी जोड़ें