在MySQL上,您可以使用string functions。對於你的榜樣,你可能想嘗試LPAD
SELECT LPAD(`id`, 4, '0') FROM patient_db_0004
你可以搜索你的數據庫引擎類似的功能。
輸出示例:
mysql> SELECT LPAD(`id` , 4, '0') FROM `patient_db_0004` LIMIT 10;
+---------------------+
| LPAD(`id` , 4, '0') |
+---------------------+
| 0001 |
| 0002 |
| 0003 |
| 0004 |
| 0005 |
| 0006 |
| 0007 |
| 0008 |
| 0009 |
| 0010 |
+---------------------+
10 rows in set (0.00 sec)
(我有一個AUTO_INCREMENT場在上面的例子稱爲id
)
編輯:根據您的意見,似乎Vincent's answer是你在找什麼爲:
<?php
$term = 'foobar';
for($i=1; $i<5; $i++)
{
echo(sprintf("SELECT * FROM patient_db_%04d WHERE MATCH (Name, id_number) AGAINST ('$term' IN BOOLEAN MODE);\n", $i));
}
?>
遞給我:
SELECT * FROM patient_db_0001 WHERE MATCH (Name, id_number) AGAINST ('foobar' IN BOOLEAN MODE);
SELECT * FROM patient_db_0002 WHERE MATCH (Name, id_number) AGAINST ('foobar' IN BOOLEAN MODE);
SELECT * FROM patient_db_0003 WHERE MATCH (Name, id_number) AGAINST ('foobar' IN BOOLEAN MODE);
SELECT * FROM patient_db_0004 WHERE MATCH (Name, id_number) AGAINST ('foobar' IN BOOLEAN MODE);
如果我理解正確,您正在嘗試運行這些查詢。所以你可能會考慮在這裏做的是:
<?php
// ...
for($i=1; $i<5; $i++)
{
$query = sprintf("SELECT * FROM patient_db_%04d WHERE MATCH (Name, id_number) AGAINST ('$term' IN BOOLEAN MODE);\n", $i);
$sql = mysql_query();
}
?>
所以我可以自動選擇'patient_db_0004',patient_db_0005,patient_db_0006 - 自動? – iamwhitebox
也許我誤解了你的問題。我編輯了我的答案。希望有所幫助。 – Umang