2016-06-26 5 views
-2

PHPのpreg_replace関数を使ってmysqlカラムを置き換える必要があります。 フィールドに一貫性がありません。*または任意の数のフィールドのようになります。mySQLクエリフィールドをcountキーワードに置き換えるにはどうすればよいですか?

例: - 交換用のクエリの後

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; 
+1

何を試しましたか? – rock321987

+0

おそらく単に 'count'ではなく' COUNT(*) 'が必要でしょうか? –

答えて

2

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; 
+0

ありがとう、これは私が欲しいものです。しかし私はなぜ私の質問が否定的な印であるかを知りませんでした。 –

関連する問題