我已经复制并粘贴了一个只在表格中添加一列的SQL语句:
ALTER TABLE `users` ADD COLUMN `favourites` TEXT;
但是,在我复制和粘贴的位置,favourites
名称有一些设法来获取隐藏的字符。
我在上面的示例中留下了隐藏字符,供您查看/或不查看它!
它是favourites?
,似乎是一个问号。
问题:我需要删除此列并手动重新添加,以便隐藏的字符不存在。问题是我做的任何SQL语句,由于隐藏的字符而无法识别列名favourites
,我不知道如何定位它。
有没有人知道怎么解决这个问题?
答案 0 :(得分:1)
使用相同的用途
SHOW COLUMNS FROM your_table;
获取列名,然后在删除命令中复制所需的列
alter table your_table drop column your_column_copied
并添加具有正确名称的列
alter table your_table add column your_column
否则,如果不可能获取column_name,则可以使用create / select命令创建没有错误列的临时表
create table (col1, col2, col3)
select col1,col2, col3
from you_table
然后删除原始表并重命名临时表,最后添加具有正确名称的列
答案 1 :(得分:1)
您可以使用动态查询:
DECLARE @sql nvarchar(800)
SELECT @sql = 'ALTER TABLE users DROP COLUMN ' + COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = 'users' and COLUMN_NAME LIKE '%favour%'
EXEC sp_executesql @sql
答案 2 :(得分:1)
您可以通过查询INFORMATION_SCHEMA
获取列名,并使用获取的列名准备语句。像这样:
DECLARE @StrangeColumnName NVARCHAR(16) := ''
SELECT @StrangeColumnName := COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'users' AND COLUMN_NAME LIKE 'favourites%'
DECLARE @SqlText NVARCHAR(32) := 'ALTER TABLE status DROP COLUMN ?'
EXECUTE @SqlText USING @StrangeColumnName
答案 3 :(得分:0)
也许打开表的信息架构并从那里复制列名?我不知道你在使用哪个数据库。请更新以获取更多信息。
如果您可以访问phpMyAdmin,或者如果您可以创建一个小脚本来运行此脚本:
SELECT COLUMN_NAME, FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'your_tbl_name'
OR
SHOW COLUMNS
FROM 'your_tbl_name
并从页面复制列名。
接下来,您可以使用
删除该列alter table your_tbl_name drop column column_name;
你已经知道如何在mysql中添加一个列,所以我想这应该可以解决你的问题。
我希望你知道,如果你的声誉低于50,你不能发表评论,如果你没有提供足够的信息,那些可能真正得到你答案但是低于50代表的人将会有把它贴在答案中。或者你想消除那些50名候选人作为帮助你的候选人吗?
答案 4 :(得分:0)
要删除列,您可以使用:
alter table <tblname> drop column <colname>
然后在删除列后,您可以通过编写以下代码来添加列:
ALTER TABLE users ADD COLUMN favourites TEXT;
答案 5 :(得分:-1)
一些可能性: