私はデータベースに接続するためにpymssqlを使用しています。 そのデータベースには、すべての文字列が64文字長い、魔法使いの列(colという名前)を持つテーブルがあります。 (例:"John "
)。 今、私はデータベースでJohnを探しています。私はLIKE
を使ってみました。パラメータの数が不定でLIKEと%をpymssqlで使用する方法はありますか?
cursor.execute("SELECT * FROM table WHERE col LIKE 'John%' ") // gives perfect results
をしかし、私はそれが%s
を使用しようとすると、これは何も一致していないように思われる: 私は名前をハードコーディングするとき、それは完璧に動作します。
cursor.execute("SELECT * FROM table WHERE col LIKE '%s%' ", "John") // gives all Johns
をしかし、私は列の未定数に一致させたい:私は1つの列のみにマッチしたい場合
cursor.execute("SELECT * FROM table WHERE col LIKE '%s%' ",(0,"John")) // gives Nothing
cursor.execute("SELECT * FROM table WHERE col LIKE '%s%' ",{0:"John"}) // gives SQL "Incorrect syntax" error
cursor.execute("SELECT * FROM table WHERE col LIKE '%s%' " % {0:"John"}) // gives unsupported format error
これは働いているだろう。 最終的なクエリの外観を見て、自分でデバッグしようとする方法がありますか?そうでなければ、多くのパラメータの使い方を知っていますか? hereのように見えたら、タプルの配列を使うべきだと思われますが、それを動作させる方法を見つけることができません。
cursor.execute("SELECT * FROM table WHERE col LIKE '%s%' ", ("John"))
私は問題があると思う:
は、私が「
cursor.execute("SELECT * FROM table WHERE col LIKE '{0}%' ".format("John"))
以上のパラメータを正しく使用して怠けていた場合、私は、format()
を使用して、これを書くと、事前