是否有可能在MySQL中为特定范围的项目选择行?mysql - 选择从..到
例如,当我想按字母顺序选择名称的第一个字母在B和T之间的所有项目时。 我知道我可以使这是PHP也,但它会为我节省一点时间,如果这是可能的MySQL ...
是否有可能,如果是这样,如何?
理想的情况是这样的:
$sql="SELECT * FROM paths FROM name=name1 TO name=name6"; //which would select name1, 2, 3, 4, 5, 6.
是否有可能在MySQL中为特定范围的项目选择行?mysql - 选择从..到
例如,当我想按字母顺序选择名称的第一个字母在B和T之间的所有项目时。 我知道我可以使这是PHP也,但它会为我节省一点时间,如果这是可能的MySQL ...
是否有可能,如果是这样,如何?
理想的情况是这样的:
$sql="SELECT * FROM paths FROM name=name1 TO name=name6"; //which would select name1, 2, 3, 4, 5, 6.
使用BETWEEN
基本上都会让你有,但你需要使用一个字母过去要结束。试验,直到你得到你想要的结果。
SELECT * FROM paths WHERE UPPER(name) BETWEEN 'B' AND 'U';
这里的想法是,任何以'T'开始的东西都会在以'U'开始之前按字母顺序排序。您需要通过UPPER()
将其转换为大写,这样您才不会遇到潜在的排序问题。
因此您的结果可能是这样的:
B,
Bill
Bob
Jane
Tommy
Travis
但Uwe
(他是德国)将被排除在外。
您可以使用BETWEEN
,如:
SELECT * FROM paths WHERE name BETWEEN 'B' AND 'U'
不,params 2应该是'name7',或者什么的,name6不会被中间夹住(因此其他人使用'U'来结束得到'T's –
@ michael-durrant感谢您的评论,我改变了它.. – Kayser
甜!谢谢!这正是我期待的!这也可以通过部分匹配来完成,例如当名称是BAA,BBB,CDA,CEF,PFE等时? – laarsk
@laarsk部分匹配遵循相同的规则,所以是的,它应该工作。换句话说,只要它以'U'之前的东西开始,它就会包含在内。 –
太好了,非常感谢! [仍然需要等待4分钟才能将此标记为答案...] – laarsk