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

अल्पविराम से अलग करके अलग-अलग कॉलम खोजें

यह इस बात पर निर्भर करता है कि आप उन पंक्तियों को वापस करना चाहते हैं जहां नाम या शहर खोज मानों से सटीक रूप से मेल खाते हैं (= ), या पंक्तियाँ जहाँ नाम या शहर का कोई भाग खोज मानों से मिलान करें (LIKE )।

चाहे आपको किसी की भी आवश्यकता हो, आप अपनी खोज स्ट्रिंग को इस तरह से स्ट्रिंग्स की एक सरणी में परिवर्तित करके प्रारंभ कर सकते हैं:

$strings = array_map('trim', explode(',', $searchString));

array_map('trim'... सुनिश्चित करता है कि आप अपनी अल्पविराम से अलग की गई खोज स्ट्रिंग में अल्पविराम से पहले या बाद में किसी रिक्त स्थान का मिलान करने का प्रयास नहीं करते हैं।

पीडीओ में तैयार बयानों का उपयोग करके अपनी क्वेरी को निष्पादित करने के उदाहरण यहां दिए गए हैं। सबसे पहले, IN . का उपयोग करके पूर्ण मिलान करें :

$phs = rtrim(str_repeat('?,', count($strings)),',');
$stmt = $pdo->prepare("SELECT * FROM your_table WHERE name IN ($phs) OR city IN ($phs)");
// double the string values to us in both INs
$values = array_merge($strings, $strings);
$stmt->execute($values);

और आंशिक मिलान LIKE . का उपयोग करके :

$sql = '';
foreach ($strings as $string) {
    $sql .= ' name LIKE ? OR city LIKE ? OR';
    $values[] = $string;
    $values[] = $string;
}
$stmt = $pdo->prepare('SELECT * FROM your_table WHERE' . rtrim($sql, ' OR'));
$stmt->execute($values);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. WAMP में my.ini फ़ाइल पर डेटादिर बदलने का सम्मान नहीं किया जा रहा है

  2. एक सर्वर से दूसरे सर्वर में टेबल कैसे अपडेट करें?

  3. MyISAM पर फुलटेक्स्ट इंडेक्सिंग, सिंगल कॉलम बनाम मल्टीपल कॉलम इंडेक्सिंग

  4. MySQL में रीसेंसी से पर्सेंटाइल की गणना करें

  5. MySQL त्रुटि 1436:थ्रेड स्टैक ओवररन, साधारण क्वेरी के साथ