我根据一系列字母从数据库中选择姓氏。一切正常,但名称以Z开头。显然,BETWEEN子句不包括Z,它包含其他范围内的字母的方式。有一种简单的方法可以解决这个问题吗?
$range1 = "V";
$range2 = "Z";
$sql = "SELECT id,first,last FROM users WHERE last BETWEEN '$range1' AND '$range2' ORDER BY last ASC";
此查询不包含以字母Z开头的名称。但如果范围是A-G,则将包含带有G的名称。
答案 0 :(得分:0)
根本问题是系统将字符数据转换为ascii等价物。当它这样做Z<但不等于Zebra所以你需要z之后的下一个ascii字符。如果Z是90那么[是91.所以如果你想要CAPITAL A和Z的所有扩展之间的所有内容,那么你需要它小于[作为范围2。
或者只是比较第一个字母而不是整个字符串。