我在這裏有一個搜索腳本,需要使用MySQL和PHP搜索多個表中的短語/單詞。正在搜索的列name
在所有表中都是相同的。任何幫助將不勝感激,這是我的代碼如下。MySQL PHP查詢從多個表中選擇
<?php
$filter = $_REQUEST['query'];
mysql_connect($hostname,$username, $password) or die ("<script language='JavaScript'>alert('Unable to connect to database! Please try again later.'),history.go(-1)</script>");
mysql_select_db($dbname);
$query = 'SELECT * FROM (SELECT `name` FROM `voxmoviesfilestable`) a UNION (SELECT `name` FROM `voxadultfilestable`) b UNION (SELECT `name` FROM `voxmixesfilestable`) c UNION (SELECT `name` FROM `voxconcertsfilestable`) d UNION (SELECT `name` FROM `voxmp3filestable`) e UNION (SELECT `name` FROM `voxfilestable`) WHERE `name` REGEXP \''.$filter.'\' ORDER BY `name`;';
$maxquery = 'SELECT count(*) as cnt FROM `voxmoviesfilestable`, `voxadultfilestable`, `voxmixesfilestable`, `voxconcertsfilestable`, `voxmp3filestable`, `voxfilestable` WHERE `name` REGEXP \''.$filter.'\';';
$result = mysql_query($query) or die ('Error accessing Database');
?>
不是一個解決方案,但是''query ='中有很多語法錯誤SELECT * FROM WHERE REGEXP \''。$ filter。'\'ORDER BY name;';' – asprin 2013-03-09 06:29:45
任何機會你都可以把你所有的數據輸入**一個**表? – 2013-03-09 06:30:12
您的第一個查詢無效,沒有表名稱「SELECT * FROM WHERE REGEXP ...'。第二個查詢中的這些表之間是否有任何關係? – 2013-03-09 06:34:09