2 回答

TA貢獻1876條經驗 獲得超7個贊
復雜性取決于給定輸入的類型。如果你確定輸入的類型,即是字符串還是數字,你可以直接采用Khan 的 Answer,字符串格式更好。幾個例子:
# Method 1(f-string) - if a number
a = f'select * from student_info where Student_ID = {studentid}'
# if string
a = f"select * from student_info where Student_ID = '{studentid}'"
否則,如果給我們的輸入類型是動態的,即可以是字符串或數字,那么這里有一個適合于此的單行:
a = 'select * from student_info where Student_ID = ' + (studentid if studentid.isnumeric() else "'"+studentid+"'")
僅當沒有給出其他條件時,即僅當串聯不會產生不必要的復雜性時,上述情況才是可能的。您還可以使用 f-string:
a = f'''select * from student_info where Student_ID = {(studentid if studentid.isnumeric() else "'"+studentid+"'")}'''

TA貢獻1818條經驗 獲得超3個贊
如果studentid
是字符串,您的 sql 語句(或a
變量)應該類似于:
a =''' select * from student_info where Student_ID = '{studentid}'; '''.format( studentid=studentid )
如果它是整數(或數值),則不需要任何引號{studentid}
:
a =''' select * from student_info where Student_ID = {studentid}; '''.format( studentid=studentid )
添加回答
舉報