2

この質問に対する簡単な答えが見つからないようです。Python用のMySQLdbを使用していて、selectステートメントを実行しています。空のクエリセットが返されるかどうかを確認したいと思います。

get_port = db.cursor()
get_port.execute(""" SELECT port FROM nar_ports WHERE port=%s AND hostname=%s;""", (device_port,PE))

私が試してみました

if not get_port:

これは一致しません。だから私は試しました

for result in get_port.fetchall():
    existing_port = result[0]
if not existing_port:

しかし、それはループに入ってさえいないようです。それで長さをチェックしてみました

if len(get_port) == 0:

しかし、SQLオブジェクトでlenを実行することはできないようです。そこで、オブジェクトにnone値があるかどうかを確認します。

if get_port = None:

しかし、これもうまくいかないようです。

これには簡単な解決策があると確信していますが、私はそれを見つけることができないようです。どんな助けでも大歓迎です。前もって感謝します。

乾杯

4

1 に答える 1

3

あなたはほとんど長い道のりを持っていましたが、それは簡単です。

if get_port.fetchone():
    do_something_here()

あなたも使用することができます

if len(get_port.fetchmany()):
    do_something_here()

しかし、それは長く、効率が悪くなります。

于 2013-03-13T00:09:38.373 に答える