如何用count关键字替换mySQL查询字段


How to replace mySQL query fields with count keyword?

我必须使用php preg_replace函数替换mysql列,这是可能的。字段是不一致的,任何东西都可以在那里,比如*或任意数量的字段。

: -

query1 : Select * from user;
query2 : Select fname,lname,email from user;
query3 : Select a.*,b.col1,b.col2 from user as a left join table2 as b where a.id = b.userid;

替换后的查询应该如下:

query1 : Select count from user;
query2 : Select count from user;
query3 : Select count from user as a left join table2 as b where a.id = b.userid;

preg_replace使用起来非常简单,它只是接受一个模式,一个字符串来替换模式,并将主题文本作为参数,它返回经过处理的字符串:

<?php
$query1 = <<<SQL
    Select * from user;
SQL;
$query2 = <<<SQL
    Select fname,lname,email from user;
SQL;
$query3 = <<<SQL
    Select a.*,b.col1,b.col2 from user as a left join table2 as b where a.id = b.userid;
SQL;
$query1 = preg_replace('/Select .* from/', 'Select count from', $query1);
$query2 = preg_replace('/Select .* from/', 'Select count from', $query2);
$query3 = preg_replace('/Select .* from/', 'Select count from', $query3);
/* the manipulated strings are now assigned to these variables, echo to view them */
echo $query1 . PHP_EOL;
echo $query2 . PHP_EOL;
echo $query3 . PHP_EOL;

输出(终端)

% php test.php
        Select count from user;
        Select count from user;
        Select count from user as a left join table2 as b where a.id = b.userid;