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

MySQLdb - जांचें कि क्या पंक्ति मौजूद है Python

  1. सबसे पहले आपके कोड में गलत सिंटैक्स है। पायथन में try...catch नहीं है खंड मैथा। इसमें try...except है। ब्लॉक जो इस तरह प्रयोग किया जाता है:
try:
    # something here
except:
    # something here
  1. जब आप SELECT का उपयोग करते हैं तो MySQL कोई त्रुटि नहीं देता है आज्ञा। हालांकि, आप दो अलग-अलग तरीकों से पता लगा सकते हैं कि उसने कुछ लौटाया है या नहीं।

पायथन 2.7

cursor.execute(
    "SELECT Name, COUNT(*) FROM Item_Info WHERE Name = %s GROUP BY Name",
    (item_name,)
)
# gets the number of rows affected by the command executed
row_count = cursor.rowcount
print "number of affected rows: {}".format(row_count)
if row_count == 0:
    print "It Does Not Exist"

पायथन 3+

cursor.execute(
    "SELECT Name, COUNT(*) FROM Item_Info WHERE Name = %s GROUP BY Name",
    (item_name,)
)
# gets the number of rows affected by the command executed
row_count = cursor.rowcount
print ("number of affected rows: {}".format(row_count))
if row_count == 0:
    print ("It Does Not Exist")

ऐसा करने का एक और तरीका यह होगा कि स्टेटमेंट प्राप्त करें और जांचें कि क्या यह खाली है:

# execute statement same as above  
msg = cursor.fetchone()  
# check if it is empty and print error
if not msg:
    print 'It does not exist'

<स्ट्राइक>यह मेरा पहला उत्तर है, इसलिए मुझे नहीं पता कि उत्तर में कोड को सही तरीके से कैसे स्टाइल किया जाए, इसके कारण यह गड़बड़ भी लगता है। इसके लिए क्षमा करें।

इसके अलावा मैं पायथन 3 और pymysql का उपयोग करता हूं, इसलिए कुछ वाक्यविन्यास त्रुटि हो सकती है लेकिन मैंने इसके बारे में जो कुछ भी याद किया उससे मैंने अजगर 2.7 के अनुसार कोड लिखने की कोशिश की है।

संपादित करें (5/1/2020)

@Arishta को यह बताने के लिए धन्यवाद कि पहली विधि के लिए आपको row_count का उपयोग करने से पहले सभी पंक्तियों को लाने की आवश्यकता होगी। यानी cursor.fetchall() . जोड़ना row_count = cursor.rowcount . से पहले

cursor.execute(
    "SELECT Name, COUNT(*) FROM Item_Info WHERE Name = %s GROUP BY Name",
    (item_name,)
)
# Add THIS LINE
results = cursor.fetchall()
# gets the number of rows affected by the command executed
row_count = cursor.rowcount
print("number of affected rows: {}".format(row_count))
if row_count == 0:
    print("It Does Not Exist")

cursor.fetchone() का प्रयोग करें अगर आपको केवल इस बात की परवाह है कि रिकॉर्ड मौजूद है या नहीं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 2 कॉलम में डुप्लीकेट कैसे खोजें 1

  2. Django के बाहर Django डेटाबेस परत का उपयोग करना?

  3. पीडीओ से लौटाए गए ऑब्जेक्ट को अपनी कक्षा में सेट करना

  4. लाइव MySQL डेटाबेस को आर्काइव करने का सबसे अच्छा तरीका

  5. डबल प्रकार के लिए MySQL न्यूनतम/अधिकतम