【问题标题】:Randomise strings in mysqlmysql中的随机字符串
【发布时间】:2013-02-08 13:35:44
【问题描述】:

我在 mysql 中有一个字符串,我想随机化,这样每次运行查询时,我都会得到不同的结果。

示例字符串

$str = '4_127','2_84','2_85';

所以,我会将它传递给ORDER BY 子句以随机化结果。

SELECT `MY_SEARCH_PARAMS` FROM `mytable` WHERE `MY_WHERE_CONDTIONS` ORDER BY
FIELD( CONCAT( property_id,"_",catalog_id ), '4_127','2_84','2_85' ), `id` ASC;

我需要一种方法,以便每次更改字符串内容的顺序。

谢谢。

【问题讨论】:

  • $str = '4_127','2_84','2_85'; 是实际的字符串还是你有4_1272_842_85 的树字符串?
  • 这是实际的字符串。
  • 你的表中有 `'4_127','2_84','2_85'` 值吗???
  • @jcho360 不,它们是 concating... property_id catalog_id 的值,如查询所示。 4_127:4是property_id,127是catalog_id等等……
  • 你在问什么在 MySQL 中没有意义,你试图按 3 个不属于表的项目排序,我想最好在另一个编程的帮助下做到这一点PHP之类的语言

标签: mysql random


【解决方案1】:

真的吗?这是非常令人困惑的行为。你想达到什么目的?

尽管如此,即使您使用这样的代码,至少最好在 php 脚本中随机化它们(我假设您使用的是 php)。

$str_array = array('4_127','2_84','2_85');
shuffle($str_array);
$str = implode(", ",$str_array)

【讨论】:

  • 确实令人困惑。但这就是项目变化的方式:) 是的,如果不出意外,我可能会在 PHP 中做到这一点。
  • 为什么要由 MySQL 处理?
  • 还有很多其他的字段/条件依赖于它。
猜你喜欢
  • 1970-01-01
  • 2015-05-11
  • 2017-05-20
  • 2015-09-07
  • 1970-01-01
  • 2012-08-05
  • 1970-01-01
  • 2011-01-03
  • 1970-01-01
相关资源
最近更新 更多