Php 如何排列VARCHAR列?
我有一个包含varchar列的表。这个表将用于分页。 有关表结构,请参见SQL FIDLE 它包含列Php 如何排列VARCHAR列?,php,mysql,Php,Mysql,我有一个包含varchar列的表。这个表将用于分页。 有关表结构,请参见SQL FIDLE 它包含列g\u seasure现在我启动查询时 SELECT * FROM(SELECT * FROM Games WHERE g_season > 'cvxv' ORDER BY g_season ASC ) s LIMIT 1 它给了我正确的g_id=7但当我输入'dasd'时,它给了我g_id=10,但它应该是g_id=12,这是因为7和12g_id列包含g_季节,而'dasd'和sql将
g\u seasure
现在我启动查询时
SELECT * FROM(SELECT * FROM Games WHERE g_season > 'cvxv' ORDER BY g_season ASC ) s LIMIT 1
它给了我正确的g_id=7
但当我输入'dasd'时,它给了我g_id=10
,但它应该是g_id=12
,这是因为7和12g_id
列包含g_季节,而'dasd'和sql将获取最后一个匹配的行,它只是g_id=10
不应该是这样的
g_season = 'cvxv'
尝试将子查询作为
SELECT * FROM Games WHERE g_season = 'dasd' ORDER BY g_season ASC
它给出12和7个id,但当8,10,1,2中有
id时
在这种情况下,它返回id=12
-FIDDLE
编辑:
我只想到一件事:
在这种情况下,您可以通过ID进一步查看
g_ID=12
SELECT * FROM Games WHERE g_season = 'dasd' ORDER BY g_season ASC LIMIT 1
如果您有多行具有相同的g_seasure
,那么您确实需要第二个排序列,否则如果存在多个匹配项,您可能无法确定返回的行
编辑可能这就是您想要的
只要您知道如何订购匹配的记录,您就可以得到您想要的,例如,这将获得第一条记录(假设我们是通过g_id
ASC订购匹配的记录):
这将获得第二条记录:
SELECT *
FROM Games
WHERE g_season = 'dasd'
ORDER BY g_id ASC
LIMIT 1,2
你可以对每一条记录都像这样进行设置你能提供更多细节吗?因为7和12 g_id列包含g_季节和“dasd”,您的意思是什么?为什么您在查询中使用的
比在查询中使用的多?很难理解你的问题到底想要什么结果你到底想要什么?当你转到sql fiddle时,你会发现我当前的查询给出了g_id=7的结果,这是正确的,现在当我在查询中输入g_id=7的g_季节“dasd”值时,它会给我g_id=10行,但我需要g_id=12,它显示在这个结果中,并且是正确的只有下一条记录SELECT*FROM Games WHERE g_season='dasd'ORDER BY g_seash ASC LIMIT 1
它的分页类型由g_season安排/排序这种分页的指定结果是什么?这就是我正在做的我有jqgrid,它有几个列,当我单击任何列(包含varchar数据)时它由asc/desc安排。然后假设用户单击第一行,则详细信息页面将打开,其中将包含上一个/下一个按钮,该按钮通过单击jqgrid列从当前页面转到下一个页面。其分页类型由g_季节安排/排序。我必须捕获当前页面并获取next@John为什么要放置>符号?您想要什么?这是通过g从表order中获取下一条记录_season@John很难理解你想要的结果,你所说的“那种”分页是什么意思?分页通常通过某种数字列而不是varchar来实现。下一个记录顺序是什么?约会?
SELECT *
FROM Games
WHERE g_season = 'dasd'
ORDER BY g_id ASC
LIMIT 1,2