【问题标题】:Need advice for mySQL query for my problem需要针对我的问题的 mySQL 查询建议
【发布时间】:2020-07-07 23:07:34
【问题描述】:

I need help for advice query sql to display in php like in picture shown

我需要显示数据sql,用循环处理php,所以数据可以轮流显示,(promote-notpromote-promote-notpromote...)

例子

表 A

id  brand promote
-----------------
1   A     no
2   B     yes
3   C     yes
4   D     no
5   E     yes
6   f     no
7   G     no

预计数据会这样显示,

brand promote
-------------
B     yes
C     yes
A     no
D     no
E     yes
F     no
G     no

【问题讨论】:

  • 到目前为止,您尝试过什么(如键入)?
  • StackOverflow 接受确切的问题,而不是图纸。请编辑您的问题并尽可能描述您的问题,否则它将被否决并删除。
  • 这样更好,谢谢。很快我会写一个答案

标签: php sql


【解决方案1】:

MySQL 按其值对列进行排序,因此在您的情况下,您只能通过order by brand ascorder by brand descA 获取到N 升序顺序和NA 降序。您可以对第二列执行相同的操作,然后您将在 noyes 中使用 asc 排序和使用 desc 进行反向排序。

如果您想以其他随机方式对项目进行排序,您需要添加新列,我们将其命名为sortingcol integer 类型,您需要在其中存储您想要的位置给每个项目。如果您的...绘图,值将是

brand promote sortingcol
------------------------
B     yes     1
C     yes     2
A     no      3
D     no      4
E     yes     5
F     no      6
G     no      7

那么你可以像这样查询它

select * from yourtable order by sortingcol asc

select * from yourtable order by sortingcol desc

【讨论】:

  • 谢谢先生的回答,但问题是我仍然无法完成这项工作,我无法制作循环,因此输出是前 2 行提升,然后 4 行不提升,2 再次提升。 .很快就会出现这种模式......知道这是如何工作的......我很抱歉,我正在尝试使用许多条件语句进行许多循环,但不能像我预期的那样正常工作
  • @PaundriSetyoW 正如我所说,唯一的可能性是创建一个额外的列进行排序,相信我,我已经这样做了 20 年。另一种方法是通过手动对品牌进行按键排序(如果它们绝对唯一)将其排序到 PHP 的数组中,但是相信我,它会慢得多,维护起来也困难得多。
  • 您能否详细解释一下先生,如何使其与附加列一起进行排序(逐步(,..对不起,我的逻辑思维已经耗尽来解决这个问题..
  • 实际上我在回答中描述了它。重点是额外的排序栏会更快更舒服。如果你实现了这一点,除了执行简单的 SQL 查询然后渲染输出之外,你不需要在 PHP 端做任何事情。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-02
  • 1970-01-01
  • 2013-01-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多