1

有没有办法查看哪些字符替换 SQL 查询中的 %/通配符?

        $exhibitions = $wpdb->get_results( "SELECT * FROM wp_postmeta
            WHERE meta_key LIKE  'dates_%_startdate'
            ORDER BY meta_value
            LIMIT 0 , 30" );

如果结果中的 meta_key-column 是“dates_0_startdate”,我想以某种方式得到零。

4

4 回答 4

2
SELECT *, replace(replace(meta_key, 'dates_', ''), '_startdate', '')
FROM wp_postmeta
WHERE meta_key LIKE  'dates_%_startdate'
ORDER BY meta_value
LIMIT 0 , 30

SQLFiddle 演示

于 2013-11-05T08:25:22.977 回答
1
SELECT REPLACE(REPLACE(meta_key,'dates_',''),'_startdate','') 
FROM wp_postmeta
WHERE meta_key LIKE  'dates_%_startdate'
ORDER BY meta_value
LIMIT 0 , 30
于 2013-11-05T08:27:47.520 回答
1

只是一个警告,在 MSSQL 中,下划线是单字符通配符。

http://technet.microsoft.com/en-us/library/ms179859.aspx

同样在 MySQL 中:http: //dev.mysql.com/doc/refman/5.0/en/pattern-matching.html

于 2013-11-05T08:25:36.197 回答
0

取决于您使用的 SQL 形式。如果您使用的是 MSSQL(从您的 get_results 中看您不是这样),您可以使用 SUBSTRING 返回类似于 SUBSTRING 的信息(表达式、开始、长度)

get_results( "SELECT SUBSTRING(meta_key, 7, 1) FROM wp_postmeta
        WHERE meta_key LIKE  'dates_%_startdate'
        ORDER BY meta_value
        LIMIT 0 , 30" );
于 2013-11-05T08:29:40.170 回答