【问题标题】:Random strings SQL随机字符串 SQL
【发布时间】:2017-06-11 16:15:46
【问题描述】:

我正在使用 C# 程序中的数据库中的数据制作图表。我有一个用户列表,我想以伪随机顺序显示。

我试过这段代码

void Button1Click(object sender, EventArgs e)
    {
        Connessione.Open();
        MySqlDataAdapter SDA=new MySqlDataAdapter("SELECT RAND() concorrente, id FROM Classifiche WHERE taglia='small' AND categoria='agility'",Connessione);
        DataTable DATA= new DataTable();
        SDA.Fill(DATA);
        dataGridView1.DataSource=DATA; 
        Connessione.Close();
    }

不过,在这种情况下,查询显示的是随机数而不是随机字符串。我该如何解决?

我已经尝试了这里发布的解决方案How to request a random row in SQL?,但我无法解决问题

【问题讨论】:

标签: c# sql random


【解决方案1】:

如果您使用“MySQL”数据库,则必须使用RAND(),如果您在查询的ORDER BY 子句中使用“Sql Server”,则必须使用NEWID(),如下所示:

SELECT concorrente, id FROM Classifiche WHERE taglia='small' AND categoria='agility' ORDER BY RAND()

【讨论】:

  • @Steve 我可以用什么代替?
  • 请调试您的代码,在 SDA.Fill(DATA) 之后放置一个断点并检查 DATA DataTable 是否有任何行。另一件事:重新检查您的 WHERE 子句是否有匹配的结果
  • @S.Serp 代码有效。如果我不使用 RAND() 我可以显示我的数据,我尝试了其他条件只是为了尝试并且每次程序运行良好
  • 在添加RAND() 函数后,您可以使用您现在测试的更新代码来编辑您的问题吗?也请在其关键字中添加MySQL标签
【解决方案2】:

改用 newid()

SELECT concorrente, id FROM Classifiche WHERE taglia='small' AND categoria='agility' ORDER BY newid()

【讨论】:

  • No results :( 反正我用的是 Mysql,所以理论上 RAND() 应该没问题,但不是
  • @Marietto,用 MySQL 标记您的问题,以获得 MySQL 答案!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-06-21
  • 2010-11-22
  • 2012-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-05
相关资源
最近更新 更多