2013-06-08 11 views
7

साथ शामिल होने की तरह खंड के साथ शामिल हो ..इनर मैं आंतरिक उपयोग कर रहा हूँ की तरह खंड

मेरे कोशिश की एसक्यूएल

SELECT tbl_songs.id AS sid, 
     tbl_songs.name AS sname, 
     tbl_albums.id AS aid, 
     tbl_albums.name AS aname 
FROM tbl_songs 
     INNER JOIN tbl_albums 
       ON tbl_songs.albums LIKE '%' + tbl_albums.name + '%'; 

इसका मुझे दिखा सिंटेक्स त्रुटि है।

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '+ tbl_albums.name + '%'' at line 2 

कृपया वाक्यविन्यास त्रुटि का विस्तृत कारण कृपया।

+0

कृपया ध्यान रखें कि एक अग्रणी वाइल्डकार्ड के साथ 'LIKE' का उपयोग प्रदर्शन के लिए खराब है। जुड़ने के साथ इसका उपयोग प्रदर्शन के लिए बेहद खराब है। आपको वैकल्पिक समाधान के साथ आने की कोशिश करने की सलाह दी जाएगी। – Spudley

उत्तर

26

आप concat का उपयोग कर खंड बनाने के लिए है ...

...LIKE CONCAT('%',tbl_albums.name, '%'); 

है mysql

+0

ओरेस में CONCAT केवल दो तर्क लेता है: CONCAT (CONCAT ('%', tbl_albums.name), '%'); –

+0

यह सही है, इस मामले में कोई दो कॉन्सट फ़ंक्शंस का उपयोग कर सकता है (जैसा कि मेरा मूल उत्तर था)। हालांकि, मैंने देखा कि सवाल mysql विशिष्ट के लिए था, इसलिए मैंने इसे –

+0

कंसैट के साथ समायोजित किया MySQL के साथ कई तर्क लेते हैं। यह प्रश्न यह है कि इस सवाल को MySQL टैग किया गया था, इसे इस तरह उत्तर दिया जाना चाहिए। 'CONCAT (str1, str2, ...)' [MySQL दस्तावेज़ीकरण] (https://dev.mysql.com/doc/refman/5.7/hi/string-functions.html#function_concat) –

1
You can use below format in oracle sql: 
    SELECT tbl_songs.id AS sid, 
      tbl_songs.name AS sname, 
      tbl_albums.id AS aid, 
      tbl_albums.name AS aname 
    FROM tbl_songs 
      INNER JOIN tbl_albums 
        ON tbl_songs.albums LIKE ('%'||tbl_albums.name||'%'); 
-1

MySQL का एक उदाहरण में कोई + ऑपरेटर इस तरह:

SELECT tbl_songs.bus_name FROM tbl_songs , tbl_albums 
WHERE tbl_songs.albums LIKE CONCAT('%',tbl_albums.name, '%'); 
+0

क्या? आपका उत्तर पूरी तरह से अलग-अलग तालिकाओं का उपयोग कर रहा है, और आपके पास कोई संदर्भ नहीं है कि यह प्रश्न का उत्तर देने में कैसे मदद करता है। (और ईमानदार होने के लिए, निचले हिस्से में अतिरिक्त "इसे देखें" टेक्स्ट बनाता है ऐसा लगता है कि यह किसी और जगह से खराब कॉपी-पेस्ट किया गया था) – Krease

+0

क्या ?? हम पूरी तरह से अलग टेबल का उपयोग क्यों नहीं कर सकते हैं, हमारे पास दो टेबल (बस, chm_master सेमी) हैं, सेमी chm_master का उपनाम है। देखें यह सिर्फ मेरे लिए सही काम कर रहा है। मैं समझ नहीं पा रहा हूं कि आप वास्तव में यहां क्या प्रकट करने की कोशिश कर रहे हैं। cm.bus_json जेसन मान है, जिसमें मैं bus_name खोजने की कोशिश कर रहा हूं। उसमें क्या गलत है। स्पष्ट रूप से आपको अवधारणाओं को स्पष्ट करना चाहिए। –

+0

प्रश्न 'tbl_albums' और 'tbl_songs' का उपयोग टेबल के रूप में करता है। आपका उत्तर 'बस' और 'chm_master' का उपयोग कर रहा है। जब मैं कहता हूं कि आप विभिन्न तालिकाओं का उपयोग कर रहे हैं तो मेरा यही मतलब है। यह काम कर सकता है अगर आपने समझाया कि यह प्रश्न का उत्तर कैसे देता है, लेकिन जैसा कि है, यह केवल कोड का एक ब्लॉक है जिसमें कोई संदर्भ नहीं है। – Krease

संबंधित मुद्दे