我在 SQLite 中尝试了这一点(即只返回了带有字符“_ S _”的trip_id):
SELECT trip_id, arrival_time
FROM stop_times
WHERE stop_id = 142444 trip_id LIKE '%\_S\_%' ESCAPE '\'
但是当我试图通过像这样的ruby传递该查询时:
SELECT trip_id, arrival_time
FROM stop_times
WHERE stop_id = #{arret[1].to_i} AND trip_id LIKE \'%\_S\_%\'
我没有相同的结果(即返回没有“_ S _”的trip_id)。
我试图在ruby命令中添加Escape \'\\\'
而没有运气
难道我做错了什么?
ps:我在Windows 8上使用 Ruby 1.9.3和SQLite 3.8.7.4 。
答案 0 :(得分:0)
您不需要在双引号内使用带单引号的反斜杠。
(另外,查找%q和%Q ruby运算符。)
答案 1 :(得分:0)
只需要逃避下划线(_)。
试试这个:
"SELECT trip_id, arrival_time FROM stop_times WHERE stop_id = #{arret[1].to_i} AND trip_id LIKE '%\_S\_%'"
OR
如果你在 Rails
StopTime.select('trip_id, arrival_time').where("stop_id = ? AND trip_id LIKE ?", arret[1].to_i, '%\_S\_%')