我想知道,是否有某种方法可以在mysql / sql中改组字符串的字母,即类似 伪代码的内容 :SELECT SHUFFLE('abcdef')
?
从http://dev.mysql.com/doc/refman/5.0/en/string-
functions.html
找不到任何内容,对其进行搜索似乎只是找到改组结果的解决方案,而不是字符串。
干得好:
DELIMITER //
DROP FUNCTION IF EXISTS shuffle //
CREATE FUNCTION shuffle(
v_chars TEXT
)
RETURNS TEXT
NOT DETERMINISTIC -- multiple RAND()'s
NO SQL
SQL SECURITY INVOKER
COMMENT ''
BEGIN
DECLARE v_retval TEXT DEFAULT '';
DECLARE u_pos INT UNSIGNED;
DECLARE u INT UNSIGNED;
SET u = LENGTH(v_chars);
WHILE u > 0
DO
SET u_pos = 1 + FLOOR(RAND() * u);
SET v_retval = CONCAT(v_retval, MID(v_chars, u_pos, 1));
SET v_chars = CONCAT(LEFT(v_chars, u_pos - 1), MID(v_chars, u_pos + 1, u));
SET u = u - 1;
END WHILE;
RETURN v_retval;
END;
//
DELIMITER ;
SELECT shuffle('abcdef');
有关输出,请参见sqlfiddle.com。
已使用mariadb 10.1成功测试(相当于mysql 5.6)
大多数纸牌游戏都需要洗牌,也就是让纸牌随机排列。在第10.5节,我们看到了怎样生成随机数,但怎样利用随机数实现洗牌功能却并非显然意见的。 一种可行的方案是,模拟人洗牌的方法,将牌分为两堆,然后通过在每个牌堆中轮流选择的方式实现原牌堆的重新组织。因为一般而言,人并不能做到完美地洗牌,而程序经过大约7次迭代之后,牌堆中纸牌的顺序已经相当随机了。但是计算机程序每次在做完美洗牌的时候有一个令人讨厌的属性—
问题内容: 我想搜索给定目录中所有图像中的冲浪,并保存它们的关键点和描述符以供将来使用。我决定使用泡菜,如下所示: 当我尝试执行时,出现以下错误: 有人知道吗,这是什么意思,以及如何解决?我正在使用Python 2.6和Opencv 2.3.1 十分感谢 问题答案: 问题是您不能将cv2.KeyPoint转储到pickle文件中。我遇到了同样的问题,并设法通过本质上对关键点进行序列化和反序列化来解
Mysql Table Difference SQL 关于 我们在升级某个PHP项目时,往往会对原有的数据库增加表或者字段。本工具可以自动帮助程序员生成新数据库和旧数据库表及表字段差异,生成更新数据库的语句。 注意 本工具只生成create table的语句,不生成删除表的语句 本工具只生成alter table 的add column的语句,不生成删除列和修改列的语句 本工具基于ci开发[htt
问题内容: 我有一个类,该类的实例需要按照用户的指示格式化输出。有一种默认格式,可以覆盖。我是这样实现的: 可以吗 让我知道是否有更好的方法来进行设计。 不幸的是,我需要腌制此类的实例。但是只有在模块顶层定义的功能才能被酸洗。函数是不可拾取的,因此我的instance属性破坏了酸洗。 我尝试重写此代码以使用类方法而不是lambda函数,但由于相同的原因仍然没有运气: 请注意,即使不覆盖默认值,此处
问题内容: 我正在使用Jesey在Java(JAX-RS)中实现Restful Web Service。我在Tomcat v7.0上运行它,我使用Hibernate将数据映射到数据库(MySQL)。我有一个查询来获取可交付成果的列表: 它给了我一百个可交付成果,但我想在Task表中拥有前三名。感谢您的帮助。如何修改查询? 请注意,这三个可交付成果不应重复。 与@FGreg答案存在冲突。当我使用这些
本文向大家介绍Mysql之SQL Mode用法详解,包括了Mysql之SQL Mode用法详解的使用技巧和注意事项,需要的朋友参考一下 一、Mysql SQL Mode简介 通常来说MySQL服务器能够工作在不同的SQL模式下,并能针对不同的客户端以不同的方式应用这些模式。这样,应用程序就能对服务器操作进行量身定制以满足自己的需求。这类模式定义了MySQL应支持的SQL语法,以及应该在数据上执行何