例如:我有一个表名tbl_admin,我在该表中有很多表元素。
喜欢(id,fname,lname,contact_info,email,ip,date,status等等,最多20个元素)。
现在我只需要从该表中排除3个元素(fname,lname和contact_info),然后选择所有其他元素。这可以通过使用mysql查询吗?
如果可能,请帮助我。谢谢,
答案 0 :(得分:1)
简答 您不能明确排除列,但您可以通过仅选择其他列来隐式
SELECT
ID,
EMAIL,
IP,
DATE,
STATUS
FROM tbl_admin
长答案 事实证明我对简短回答是错误的,技术上有一种方式如问题here所示。
要在PHP中执行此操作,我建议在MySQL数据库中创建一个封装SQL的视图。然后你只需从那个视图中选择*。
或者,您可以创建一个存储过程,并传入要过滤掉的列的名称。
答案 1 :(得分:0)
Select fname,sname,contact from table_admin
答案 2 :(得分:0)
是的,所以你会有这样的事情:
SELECT
id,
fname,
lanem
FROM
tbl_admin
您只需指定它们是什么以及按什么顺序排列。而不是使用*
以默认顺序获取所有记录(列)。
修改强>
SET @sql = CONCAT('SELECT ', (SELECT REPLACE(GROUP_CONCAT(COLUMN_NAME), '<columns_to_omit>,', '') FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '<table>' AND TABLE_SCHEMA = '<database>'), ' FROM <table>');
PREPARE stmt1 FROM @sql;
EXECUTE stmt1;
实际上,我刚从其他人的帖子中得到它,所以所有的积分都归他所有。 HERE
答案 3 :(得分:0)
最新答案
中的Select all columns except one in MySQL?答案SET @sql = CONCAT('SELECT ', (SELECT REPLACE(GROUP_CONCAT(COLUMN_NAME), '<columns_to_omit>,', '') FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '<table>' AND TABLE_SCHEMA = '<database>'), ' FROM <table>');
PREPARE stmt1 FROM @sql;
EXECUTE stmt1;
根据您的情况,将<columns_to_omit>
替换为fname,lname,contact_info
旧答案
从表中检索特定列值的语法是
SELECT column_name(s)
FROM table_name
可以使用SELECT *
代替SELECT column_name(s)
如果您要将问题指向某种特定语言,例如 PHP ,那么语法可以是这样的
<?php
$con=mysqli_connect("localhost","username","password","database");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT fname,lname,contact_info FROM tbl_admin");?>
答案 4 :(得分:0)
尝试:
$result = mysql_query("SHOW COLUMNS FROM tbl_admin");
if (mysql_num_rows($result) > 0) {
while ($row = mysql_fetch_assoc($result)) {
$columns[] = $row['Field'];
}
}
//fill all columns here that you want to exclude
$columns_to_exclude = array('fname','lname','contact_info');
$sql = "SELECT (";
foreach($columns as $ind=>$val){
if(!in_array($val,$columns_to_exclude))
{
$sql .= $val.", ";
}
}
$sql = rtrim($sql,", ");
$sql .= ") FROM tbl_admin;";
echo $sql;