В MySQL вы можете использовать строковые функции .В качестве примера вы можете попробовать 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
в приведенном выше примере)
Редактировать: на основе вашего комментария, похоже ответ Винсента - это то, что вы ищете:
<?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();
}
?>