使用正则表达式返回不同的记录

问题描述 投票:0回答:1

我有一个包含多个交易记录的数据库表,其“收款人”列包含此类条目:

"DIRECT DEBIT PAYMENT TO AXA INSURANCE UK REF 551"<br>
"DIRECT DEBIT PAYMENT TO AXA INSURANCE UK REF 552"<br>
"DIRECT DEBIT PAYMENT TO AXA INSURANCE UK REF 554"<br>
"DIRECT DEBIT PAYMENT TO VODAFONE LIMITED REF 14"<br>
"DIRECT DEBIT PAYMENT TO VODAFONE LIMITED REF 15"<br>
"DIRECT DEBIT PAYMENT TO VODAFONE LIMITED REF 16"<br>
"DIRECT DEBIT PAYMENT TO GOOGLE IRELAND LTD REF 723"<br>
"DIRECT DEBIT PAYMENT TO GOOGLE IRELAND LTD REF 724"<br>
"DIRECT DEBIT PAYMENT TO GOOGLE IRELAND LTD REF 725"<br>

我想以这种方式查询表,以获取此“明显的”“收款人”列表:

"AXA INSURANCE UK"<br>
"VODAFONE LIMITED"<br>
"GOOGLE IRELAND LTD"<br>

[我的逻辑假设我可以在“收款人”列上执行包含正则表达式的“独特”类型查询,但是我很挣扎。

谢谢你。这是相关的代码行:$query1 = mysql_query ("SELECT DISTINCT TRIM(REPLACE(SUBSTRING_INDEX(payee,'REF',1),'DIRECT DEBIT PAYMENT TO','')) FROM transactions", $Link);...给出空结果。

当我使用此查询时,我得到了上面发布的数据集:$query1 = mysql_query ("SELECT DISTINCT payee FROM transactions WHERE date <= '$today' AND date >= '$backDate' and (payee like 'direct debit%' || payee LIKE '%standing order%') ORDER BY payee", $Link);

mysql regex distinct
1个回答
1
投票
您可以使用SUBSTRING_INDEX消除REF和数字,并且REPLACE消除等号
© www.soinside.com 2019 - 2024. All rights reserved.