MySQL函数按字母顺序排序字符串

时间:2009-08-22 20:57:57

标签: mysql string

我想知道是否有一种方法可以将字符串(varchar)传递给MySQL中的(自定义)函数,然后输出按字母顺序排序的字符串。我不确定你将如何重新排序字符串。

IN : dbca
OUT: abcd

4 个答案:

答案 0 :(得分:2)

如果有这样的功能,我会感到惊讶。没关系,您可以实施own functions

答案 1 :(得分:2)

您将无法通过SQL直接执行此操作;您必须使用编程语言执行SELECTUPDATE

答案 2 :(得分:2)

人们可能会定义一个可以做到这一点的存储函数,但它会非常笨拙且效率低下。这没有利用SQL的优势。

但是,在许多动态编程语言中它很简单:

<?php
$in = "dbca";
$out = str_split($in);
sort($out);
print_r($out);

答案 3 :(得分:0)

我决定采用Bill的例子,这就是我提出的:

function orderAlpha($letters)
{
    $mySortedArray = str_split($letters);
    sort($mySortedArray);

    return implode($mySortedArray);
}

循环直到所有记录都更新:

$stmt = new PDOStatement(); 
$stmt = $dbh->prepare("SELECT word FROM words WHERE ordered IS NULL LIMIT 1");
$stmt->execute();

if ($stmt->rowCount() > 0) {
    $result = $stmt->fetchAll();
    $word = $result[0]['word'];
    $orderedWord = orderAlpha($word);
    $stmt2 = new PDOStatement();
    $stmt2 = $dbh->prepare("UPDATE words SET ordered = :orderedWord WHERE word = :word");

    $stmt2->bindParam(':orderedWord', $orderedWord, PDO::PARAM_STR);
    $stmt2->bindParam(':word', $word, PDO::PARAM_STR);
    $stmt2->execute();
}