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

कैसे प्राप्त करें और एक से अधिक खोजशब्दों के साथ डेटाबेस से सर्वाधिक प्रासंगिक प्रविष्टियाँ कैसे प्राप्त करें और ऑर्डर करें Laravel 5

ठीक है शायद कुछ SQL जादूगर आपको एक बेहतर SQL समाधान दे सकते हैं। लेकिन तब तक...

Laravel संग्रह के साथ मैं इसे इस तरह से करूंगा (php के साथ छँटाई):

$search_terms = array('York', 'North Yorkshire');

$properties = Property::where(function ($q) use ($search_terms) {
            foreach ($search_terms as $value) {
                $q->orWhere('address1', 'like', "%{$value}%");
                $q->orWhere('address2', 'like', "%{$value}%");
                $q->orWhere('postcode', 'like', "%{$value}%");
                $q->orWhere('city_town', 'like', "%{$value}%");
                $q->orWhere('county', 'like', "%{$value}%");
            }
        })->paginate(25);

$props = ['address1', 'address2', 'postcode', 'city_town', 'county'];

$properties = $properties->sortByDesc(function($i, $k) use ($search_terms, $props) {
    // The bigger the weight, the higher the record
    $weight = 0;
    // Iterate through search terms
    foreach($search_terms as $searchTerm) {
        // Iterate through properties (address1, address2...)
        foreach($props as $prop) { 
            // Use strpos instead of %value% (cause php)
            if(strpos($i->{$prop}, $searchTerm) !== false)
                $weight += 1; // Increase weight if the search term is found
        }
    }

    return $weight;
});

$properties = $properties->values()->all();


  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 और Java के लिए संभव है?

  2. उन सभी डेटा का चयन कैसे करें जिनकी इनपुट सरणी मिली और mysql में नहीं मिली

  3. दिनांक सीमा के साथ SQL क्वेरी में वर्ष को अनदेखा करना

  4. JPA का उपयोग करके mysql में UUID को स्ट्रिंग के रूप में संग्रहीत करना

  5. कैननिकल:HTML फॉर्म डेटा को MySQL डेटाबेस में कैसे सेव करें