MySQL SELECT INNER JOIN和LIKE

时间:2011-11-21 10:13:43

标签: mysql inner-join

我想做这样的事情:

SELECT
    s.name,
    COUNT(r.request_log_id) AS NumberOfRequests
FROM
    station AS s
LEFT JOIN request_log AS r ON r.requested LIKE '%s.station_id%'
GROUP BY 1

但是这在NumberOfRequests中给出了0,我认为这是因为它的硬编码s.station_id正在运行LIKE。

有谁知道我怎么能这样做?

为了您的信息,r.requested是一个字符串,其中包含一些数据,其中一个例子是

  

/ StationInfo - stationID =“262” - 状态= 0

所以这是staitonid我想要得到LIKE并且在它所在的request_log表中有多少行具有第一个名为station的表的站ID

1 个答案:

答案 0 :(得分:2)

第一种方法:

SELECT
    s.name,
    COUNT(r.request_log_id) AS NumberOfRequests
FROM
    station AS s
LEFT JOIN request_log AS r 
   ON r.requested LIKE concat( '%',s.station_id, '%')
GROUP BY 1

小心这种非同性恋。

见到你。