2009-08-22 21 views

答えて

2

これを行う可能性のあるストアドファンクションを定義している可能性がありますが、それは非常に扱いにくく非効率的です。これはSQLの強みを利用していません。

しかし、それは多くの動的プログラミング言語で簡単な次のようになります。

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

このような機能があった場合、私は驚くでしょう。心配しないで、own functionsを実装できます。

2

SQLで直接行うことはできません。プログラミング言語からSELECTUPDATEを実行する必要があります。

0

私はビルの例を取ることにした、これは私が思い付いたものです:

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(); 
} 
+0

クール!参考までに、 '$ stmt = new PDOStatement;は不要です。' prepare() 'が文を作成するためです。 –

+0

私はそうしていないと、PHPにバグがあったので、これを行うと思います。おそらく今修正されているはずです。しかし、ありがとう。 –