文字列(varchar)をMySQLの(カスタム)関数に渡し、アルファベット順に並べ替える方法があるのでしょうか?私はあなたが実際にどのように文字列を並べ替えるのかは不明です。アルファベット順の文字列を注文するMySQL関数
IN : dbca
OUT: abcd
文字列(varchar)をMySQLの(カスタム)関数に渡し、アルファベット順に並べ替える方法があるのでしょうか?私はあなたが実際にどのように文字列を並べ替えるのかは不明です。アルファベット順の文字列を注文するMySQL関数
IN : dbca
OUT: abcd
これを行う可能性のあるストアドファンクションを定義している可能性がありますが、それは非常に扱いにくく非効率的です。これはSQLの強みを利用していません。
しかし、それは多くの動的プログラミング言語で簡単な次のようになります。
<?php
$in = "dbca";
$out = str_split($in);
sort($out);
print_r($out);
このような機能があった場合、私は驚くでしょう。心配しないで、own functionsを実装できます。
SQLで直接行うことはできません。プログラミング言語からSELECT
とUPDATE
を実行する必要があります。
私はビルの例を取ることにした、これは私が思い付いたものです:
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();
}
クール!参考までに、 '$ stmt = new PDOStatement;は不要です。' prepare() 'が文を作成するためです。 –
私はそうしていないと、PHPにバグがあったので、これを行うと思います。おそらく今修正されているはずです。しかし、ありがとう。 –