我需要编写select语句,因为我们可以使用PHP语言将列传递给动态查询。
我有这样的查询。
SELECT `Pro_Csharp` + `Pro_Java` + `Pro_VBA` + `Pro_Cplus` + `Frameworks_Aspdotnet` + `Fram_MVCdotnet` + `Fram_WCF` + `Fram_Hibernate` + `Fram_Struts` + `Fram_Spring` + `Data_transformations_XML` + `Data_transformations_XSL` AS total_skill
FROM wp_skilllist
ORDER BY total_skill DESC
用户可以从界面中选择要选择的主题。大约有130列。因此,我想动态地处理它。有没有办法做到这一点?
如果我们不能用mysql做这个,建议用php语言也很有帮助。
答案 0 :(得分:3)
在解析用户输入时动态构建查询字符串:
$sqlString = 'SELECT ';
if ($userInput['csharp']) $fields[] = 'Pro_Csharp';
...
$sqlString .= implode (' + ', $fields);
$sqlString .= ' AS total_skill FROM...'; // rest of your query
sendQueryWithDriverOfYourChoice($sqlQuery);
答案 1 :(得分:1)
这可以做到。
执行此操作的最佳方法取决于您是否打算使用参数化语句。当你是新手时,最好保持简单。以下伪代码为您提供无限可扩展的查询。如果您只有一个复选框页面,其名称与您的颜色名称相同,则可以使用。否则,您需要对阵列进行一些清理。
$keys=array_keys($_POST);
$sql="SELECT ";
foreach($keys AS $thecolumn)
{
$sql.="`$thecolumn`+ ";
}
$sql=substr($sql,0,strlen($sql)-2); //trim off last +
$sql.=" AS total_skill FROM wp_skilllist ORDER BY total_skill DESC";