【发布时间】:2016-08-25 14:23:50
【问题描述】:
我想从 ajax 查询我的数据库中的浮点变量(地图坐标)等记录。(查询浮点列)。我不确定like方法是否可以查询字符串以外的数据类型,因为这不起作用...
data = json.loads(request.data)
markers = session.query(Markers) \
.filter( Markers.lat.like( '%' + data['lat'] + '%' ) ) \
.filter( Markers.lng.like( '%' + data['lng'] + '%' ) ) \
.order_by(func.random()).limit(7).all()
if len(markers) <= 0:
return jsonify( resp = 'no results' )
else:
return jsonify( resp = 'markers', markers = [m.serialize for m in markers] )
我什至尝试使用 str() 将其设为字符串,但仍然出现此错误:
ProgrammingError: (ProgrammingError) operator does not exist: double precision ~~ unknown
LINE 3: WHERE markers.lat LIKE '%%' AND markers.lng LIKE '%%' ORDER ...
^
HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts.
'SELECT markers.id AS markers_id, markers.type AS markers_type, markers.name AS markers_name, markers.location AS markers_location, markers.lat AS markers_lat, markers.lng AS markers_lng, markers.icon AS markers_icon, markers.message AS markers_message, markers.date AS markers_date, markers.place_id AS markers_place_id, markers.owner AS markers_owner \nFROM markers \nWHERE markers.lat LIKE %(lat_1)s AND markers.lng LIKE %(lng_1)s ORDER BY random() \n LIMIT %(param_1)s' {'lng_1': '%%', 'param_1': 7, 'lat_1': '%%'}
怎么了? sqlalchemy func 模块是否可以将浮点列查询为字符串?我该如何解决?谢谢!
ps 我正在使用 postgresql
【问题讨论】:
标签: python postgresql sqlalchemy