我想使用mysql将表中的两列与现有列名连接起来.
一个例子:我有一个列FIRSTNAME,LASTNAME还有很多列.我想用FIRSTNAME仅名称连接这两列.
所以我试着这样:
SELECT *, CONCAT(FIRSTNAME, ',', LASTNAME) AS FIRSTNAME FROM `customer`;
Run Code Online (Sandbox Code Playgroud)
但它显示名称为的两个字段FIRSTNAME.一个字段具有正常值,另一个字段具有连接值.我只想要一个具有这些连接值的列.我可以选择单列,但我的表中有超过40列.
有没有办法使用mysql本身删除原始列?
我试图删除多个列,但遇到了一些麻烦.下面的语法工程时,我做的ALTER TABLE,并ADD用括号多个值(),但它不工作DROP COLUMN.我使用了错误的语法吗?
$table3 = "
ALTER TABLE $table3_name
DROP COLUMN (
user_firstname,
user_lastname,
user_address,
user_address2,
user_city,
user_state,
user_zip,
user_phone
);
";
Run Code Online (Sandbox Code Playgroud) 当我使用eloquent时,我可以使用"where"方法,然后使用方法"get"来填充包含我在数据库中选择的内容的对象.我的意思是:
$users = User::where('gender', 'M')->where('is_active', 1)->get(['pseudo', 'email', 'age', 'created_at'])->toArray();
Run Code Online (Sandbox Code Playgroud)
在这里,我可以选择我想要的列,如'伪','电子邮件'等.但我在laravel doc中想到的是相反的方法.它可能是这样的:
$users = User::where('gender', 'M')->where('is_active', 1)->notGet(['pseudo', 'email', 'age', 'created_at'])->toArray();
Run Code Online (Sandbox Code Playgroud)
谢谢你的未来答案,祝你有愉快的一天.
如何选择除一列之外的表的所有列?
我有近259列我不能在SELECT声明中提到258列.
还有其他办法吗?
我正在阅读有关使用MEMORY ENGINE表格的表格(存储在ram中的表格).
是否可以使用CREATE TABLE AS SELECT语法,但是创建了表格MEMORY ENGINE吗?
MEMORY表的大小是否有限制?可以创建一个MEMORY表,它是一个pysical 1.5 GB表的副本?
可能重复:
选择除MySQL中的所有列以外的所有列?
我想知道有没有办法从我的数据库中的表中选择除一个字段之外的所有字段.
我知道我可以在select查询中描述字段名称.
例如:
SELECT fieldname1, fieldname2, fieldname3, fieldname4 FROM tablename;
Run Code Online (Sandbox Code Playgroud)
但我的问题是,有没有办法以简单的方式做到这一点......就像这样
SELECT * FROM tablename EXCEPT(fieldname3);
Run Code Online (Sandbox Code Playgroud)
我正在使用MySQL和Zend框架.
这是我正在尝试做的事情 - 我有一个包含大量列的表,并希望创建一个视图,其中一个列基于其他列中的某些值组合重新分配,例如
Name, Age, Band, Alive ,,, <too many other fields)
我想要一个将重新分配其中一个字段的查询,例如
Select *, Age =
CASE When "Name" = 'BRYAN ADAMS' AND "Alive" = 1 THEN 18
ELSE "Age"
END
FROM Table
Run Code Online (Sandbox Code Playgroud)
但是,我现在拥有的架构是 Name, Age, Band, Alive,,,,<too many>,, Age
我可以在我的选择陈述中使用'AS'来制作它
Name, Age, Band, Alive,,,,<too many>,, Age_Computed.
但是,我想要达到Name, Age, Band, Alive.,,,,Age实际上是计算年龄的原始模式
.
我可以选择重命名SELECT * and A_1 as A, B_1 as b吗?(然后A_1完全消失)或选择性*我可以选择除特定列之外的所有列?(这也将解决前一个声明中提出的问题)
我知道我列举所有列并创建适当查询的hacky方式,但我仍然希望有一种"更简单"的方法来实现这一点.
我有一个包含以下列的表:
id,name,age,surname,lastname,catgory,active
Run Code Online (Sandbox Code Playgroud)
代替: SELECT name,age,surname,lastname,catgory FROM table
我怎么能做这样的事情: SELECT * FROM table [but not select id,active]
探索一些具有blob字段的表.我怎样才能select *使用命令行客户端并让它压缩blob字段的打印(或截断到标准字段宽度)而不是在屏幕上滚动一堆二进制垃圾?这是与mysql 5.1客户端.只是想做一个select*而不是单独列出所有非blob字段,以便进行开发.
我想选择表中的所有列,但只给其中一个别名.
我有这张桌子:
id
base
window
thickness
shading
shape
... and many more columns
Run Code Online (Sandbox Code Playgroud)
现在,我想选择base一个别名,如下所示:SELECT base AS structure.但是我想要选择所有其他字段,而不必全部输入.
我试过了SELECT *, base AS structure,但它给了我一个错误.
事实上,这甚至不是我想要的,因为我根本不想base露面.
这是可能吗?
我正在尝试这样做SELECT * FROM tbl,但是在20列中,我不希望选择1个特定列.有没有动态的方法呢?只是讨厌在查询中指定19列!
如何从表中选择不包括某些列的多列?
我试过:
SELECT *!=[column name i want to exclude] from tablename;
Run Code Online (Sandbox Code Playgroud)
它没有用。
我需要从表"ticket"中选择所有列,除了一列"depname"以下预准备语句不能按预期工作.
PREPARE stmt1 FROM 'SELECT ? from magon.ticket limit 2';
select GROUP_CONCAT(COLUMN_NAME) into @clm from COLUMNS where TABLE_SCHEMA = 'magon' and TABLE_NAME = 'ticket' and COLUMN_NAME NOT IN ('depname') GROUP BY TABLE_SCHEMA, TABLE_NAME;
execute stmt1 using @clm;
Run Code Online (Sandbox Code Playgroud)
它返回列列表两次(由于限制2),但不返回实际数据.