如何用 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 使用起来非常简单,它只接受一个模式,一个字符串来替换模式和主题文本作为参数,它 returns 操纵的字符串:

<?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;