Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php SQL-对数字和单词进行混合排序_Php_Sql - Fatal编程技术网

Php SQL-对数字和单词进行混合排序

Php SQL-对数字和单词进行混合排序,php,sql,Php,Sql,我有一个SQL数据库,通过php文件调用。该列可以包含数字和单词。例如,它可以算作: 1 4 clowns 12 46 当然,按收益排序: 1 12 4 46 clowns 但我想让它对整数和数字进行排序: 1 4 12 46 clowns 可以这样做吗?添加一些新列来解决此问题,首先按是否为数字排序,然后按数字值排序,最后按字母顺序按单词值排序 在MSSQL中,您可以访问isnumeric函数。 在ORACLE中,您可以使用 在MYSQL中,您可以使用 请参阅,具体取决于所使用的dbms

我有一个SQL数据库,通过php文件调用。该列可以包含数字和单词。例如,它可以算作:

1
4
clowns
12
46
当然,按收益排序:

1
12
4
46
clowns
但我想让它对整数和数字进行排序:

1
4
12
46
clowns

可以这样做吗?

添加一些新列来解决此问题,首先按是否为数字排序,然后按数字值排序,最后按字母顺序按单词值排序

在MSSQL中,您可以访问isnumeric函数。
在ORACLE中,您可以使用
在MYSQL中,您可以使用


请参阅,具体取决于所使用的dbms。某些dbms产品具有带有数字排序的排序规则。请指定该排序规则适用于哪些dbms。(ISNUMERIC是一个特定于产品的功能。)
select your_column from(
select *, 
isnumeric(your_column) as ISNUMBER,
CASE WHEN ISNUMERIC(your_column) = 1 THEN CAST(your_column AS INT) ELSE null END as NUMBERVALUE,
case when isnumeric(your_column) = 1 then null else your_column end as TEXTVALUE )
order by isnumber desc, numbervalue asc, textvalue asc
...