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

जब mysql WHERE क्लॉज खाली हो, तो सभी पंक्तियों को वापस कर दें

$randomvariable = ESACPE_MYSQL_STRING($_GET['randomvariable']);
$search =
    "SELECT * FROM objects " .
    (empty($randomvariable) ? "" : "WHERE transactiontype='$randomvariable' ") .
    "ORDER BY id DESC";

जहां ESCAPE_MYSQL_STRING आप जिस भी MySQL ड्राइवर का उपयोग कर रहे हैं उसके लिए स्ट्रिंग से बचने के लिए प्रासंगिक कार्य है।

एक और, अधिक मॉड्यूलर तरीका:

$search = array(
    "select" => "SELECT * FROM objects",
    "where" => "WHERE transactiontype='$randomvariable'",
    "order" => "ORDER BY id DESC"
);

if (empty($randomvariable)) {
    unset($search["where"]);
}

$search = implode(' ', $search);

इसके बारे में अच्छी बात यह है कि आप किसी भी स्थिति के लिए क्वेरी को आसानी से जोड़, हटा या बदल सकते हैं, क्वेरी के किसी भी हिस्से तक आसानी से पहुंच सकते हैं।

आप इसे CASE() SQL में, लेकिन यह कुछ बोझिल है और आपको अच्छे प्रदर्शन की उम्मीद भी नहीं करनी चाहिए:

SELECT * FROM objects
WHERE transactiontype LIKE
    CASE WHEN '$randomvariable' = '' THEN
        '%'
    ELSE
        '$randomvariable'
    END CASE
ORDER BY id DESC


  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. OOP MySQLi में लूप के बिना सभी ऑब्जेक्ट प्राप्त करें

  3. mysql_real_escape_string() .NET फ्रेमवर्क में

  4. मैं एक बड़ी (14 जीबी) MySQL डंप फ़ाइल को एक नए MySQL डेटाबेस में कैसे आयात कर सकता हूं?

  5. पोस्ट में इमेज एल्बम कैसे प्रदर्शित करें? [केवल PHP और MYSQL का उपयोग करके]