这是我的 mySQL 查询:
SELECT *
FROM `eodList`
WHERE datechanged>='$curdate'
GROUP BY symbolName
ORDER BY dateChanged DESC
如何获取symbolName
以字母开头的所有行(例如) A-F
?
更新:
我需要一些无需大量代码更改即可轻松更改为另一个范围的东西。
这是我的 mySQL 查询:
SELECT *
FROM `eodList`
WHERE datechanged>='$curdate'
GROUP BY symbolName
ORDER BY dateChanged DESC
如何获取symbolName
以字母开头的所有行(例如) A-F
?
更新:
我需要一些无需大量代码更改即可轻松更改为另一个范围的东西。
Regular expressions
比SUBSTRING()
函数调用更快。这将使用 的索引symbolName
:
WHERE symbolName >= 'A'
AND symbolName < 'G'
但是,区分大小写存在问题。你想要以a..f
too 开头的名字吗?
如果您只想要以大写开头的名称并且表具有utf8
字符集,请使用:
WHERE symbolName >= 'A' COLLATE utf8_bin
AND symbolName < 'G' COLLATE utf8_bin
对于其他字符集,请使用相应的_bin
排序规则。
尝试使用正则表达式
WHERE symbolName REGEXP '^[A-F]'
SELECT *
FROM `eodList`
WHERE datechanged>='$curdate' AND
((SUBSTRING(symbolName, 1, 1) >= "A" AND SUBSTRING(symbolName, 1, 1) <="F"))
GROUP BY symbolName
ORDER BY dateChanged DESC