並べ替える必要がある列があり、アルファベットと数字が含まれています
今、次の値
ABC223 ABC12
ここで、文字列内のアルファベット文字を無視して、数字のみでこれをソートする必要があります。
覚えておくべきことは、値が GD で始まる場合もあれば、A のみで始まる場合もある 123AB et
これはまったく可能ですか?
次のようなことができます。
ORDER BY SUBSTRING(YourColumn, 3)
https://launchpad.net/mysql-udf-regexpとMySQLで正規表現を置き換える方法をご覧ください。
If you use udf
you can execute an ORDER BY with a regex replace.
uasort
その値を含む配列のソートに使用できます。
例えば:
$pattern = "/\d+/";
$values = array('ABC123', 'ABC12', 'GD44'); //Just for example
uasort($values, function ($a, $b) use ($pattern)
{
$matches = array();
preg_match($pattern, $a, $matches);
$a = $matches[0];
preg_match($pattern, $b, $matches);
$b = $matches[0];
return $a - $b;
});
var_dump($values);
また、SQLクエリを使用udf
した操作にも使用できます。regex