0
私はアプリケーションから取得する必要があるMySQLのテーブルを持っています。データに 'null'値が含まれていないと正常に動作しますが、データにnull値が含まれていると検索できません。Python:テーブルにnull値を含んでいるflask request.args.get
@app.route('/ABC/search1', methods=['GET'])
def ABCsearch1():
name = request.args.get('name',default='',type=str)
priceMin = request.args.get('priceMin',default='',type=str)
priceMax = request.args.get('priceMax',default='',type=str)
limit = request.args.get('limit',default=0,type=int)
offSet = request.args.get('offSet',default=0,type=int)
query = """ SELECT * FROM KLSE WHERE (Stock LIKE :s0 or Name LIKE :s1 or Number LIKE :s2)
AND (Price BETWEEN (IF(:s3='_',-5000,:s4)) AND (IF(:s5='_',5000,:s6)))
LIMIT :s95 OFFSET :s96 """
query = text(query)
input = {'s0':name+"%",'s1':name+"%",'s2':name+"%",'s3':priceMin,'s4':priceMin,'s5':priceMax,'s6':priceMax,
's95':limit,'s96':offSet}
try:
call = db.session.execute(query,input)
f = call.fetchall()
col = ['index','Stock','Name','Number','Price','id']
f1 = [OrderedDict(zip(col,t)) for t in f]
except Exception:
return 'Error'
return jsonify({'Stock': f1})
例は、証券 'XYZ' は価格3を持っている場合は、 'XYZZは' 3.4での価格であると 'XYZA' はデータベース内の価格nullです。私が 'XY'の名前で服を着ると、 'XYZ'と 'XYZZ'だけが表示されます。 「XYZA」はnullとして表示されません。
価格が「null」であっても、「XY」と一致するものが必要です。表示する必要があります。