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

Zend_Db_यादृच्छिक क्रम से चयन करें, mssql/mysql में संगत

आप फ़ंक्शन को तालिका में त्वरित रूप से सारगर्भित कर सकते हैं - कौन जानता है कि यह किस एडॉप्टर का उपयोग कर रहा है:

class MyTable extends Zend_Db_Table_Abstract {
   public function randomSelect($select=null) {
     if ($select === null) $select = $this->select();
     if (!$select instanceOf Zend_Db_Select) $select = $this->select($select);
     $adapter = $this->getAdapter();
     if ($adapter instanceOf Zend_Db_Adapter_Mysqli) {
       $select->order(new Zend_Db_Expr('RAND()'));
     } else if ($adapter instanceOf Zend_Db_Adapter_Dblib) {
       $select->order(new Zend_Db_Expr('NEWID()'));
     } else { 
       throw new Exception('Unknown adapter in MyTable');
     }
     return $select;
  }
}

$someSelect = $table->select();
// add it to an existing select
$table->randomSelect($someSelect);

// or create one from scratch
$select = $table->randomSelect();

साथ ही, मुझे कहीं न कहीं एक लेख मिला, जिसे मैंने खो दिया था, जिसमें कुछ इस तरह की कोशिश करने की सिफारिश की गई थी:

$select->order(new Zend_Db_Expr('0*`id`+RAND()));

MSSQL के क्वेरी ऑप्टिमाइज़र को हटाने के लिए और प्रत्येक पंक्ति के लिए एक नए मान की गणना करने के लिए इसे चकमा दें।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql/ओरेकल संग्रहीत गणित सूत्र

  2. VB.NET का उपयोग करके मेरी डेटाबेस तालिका में डेटाग्रिडव्यू से एकाधिक रिकॉर्ड डालें

  3. पीडीओ मल्टी इंसर्ट स्टेटमेंट

  4. शर्तों के अनुसार MYSQL क्वेरी परिणाम ऑर्डर कैसे करें?

  5. गलत तालिका उपनाम के साथ प्रश्न उत्पन्न करने वाला सिद्धांत