如何正确使用SQL函数LIKE

时间:2014-08-28 14:22:24

标签: mysql sql

我遇到了执行SQL请求的问题。实际上,我试图从我的MYSQL数据库中获取统计数据,为了做到这一点,我执行了几个类似的查询来获取共享相同" universe"的条目的信息。我将Universe称为共享相同模式的多个类别(见下文)。

SELECT *, COUNT(1) FROM offer AS o, offerattributes AS oa 
WHERE o.offer_id=oa.offer_id AND o.cat LIKE '1%' AND oa.attribute_id='status_indexer';

此第一个查询用于获取Universe 1类别的信息。每个" cat"来自这个宇宙共享两种不同的模式:

1)11 *****(*是数字)

2)10 *****

SELECT *, COUNT(1) FROM offer AS o, offerattributes AS oa 
WHERE o.offer_id=oa.offer_id AND o.cat LIKE '10%' AND oa.attribute_id='status_indexer';  

第二个用于获取Universe 10类别的信息。至于宇宙1,每个" cat"来自宇宙10共享两种不同的模式:

1)100 *****

2)101 *****

我遇到的问题是这两个查询都在宇宙1和10中查找类别。我已经从MySQL treating about the LIKE function读取了文档,在互联网上查找并且我找不到如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

看起来以下内容适用于Universe 1:

SELECT *, COUNT(1) 
FROM offer o
INNER JOIN offerattributes oa ON o.offer_id = oa.offer_id
WHERE o.cat LIKE '1%' AND oa.attribute_id = 'status_indexer'
AND LEN(o.cat) = 7

和宇宙10:

SELECT *, COUNT(1) 
FROM offer o
INNER JOIN offerattributes oa ON o.offer_id = oa.offer_id
WHERE o.cat LIKE '10%' AND oa.attribute_id = 'status_indexer'
AND LEN(o.cat) = 8