一个呼叫者给了我一个值$new_value。我已经从MySQL数据库中选择了一个值到标量$current_value中。我不知道如何可靠地检测它们是否是“相同的”。我的意思是:如果我用$new_value更新数据库记录,这会改变数据库状态吗?
把它煮成它的本质:
#!/usr/bin/perl -w
use utf8;
use strict;
use Encode qw(encode);
my $str = 'æøå';
my $latin1 = encode('latin1', $str);
# This in fact doesn't die. T
我试图将mysql中的一些数据转储到excel表中。但是,导出的excel工作表包含一些特殊的重音字符(如ei0.5),这些字符在数据库中不存在。
我的数据库是"latin1“编码,centOS有"utf-8”代码页。我试图转换字段,同时选择如下,但仍然很少有字段包含这些重音字符。_
select convert(cat.name USING latin1)as category from category_table cat
into outfile 'course_details.csv'
fields terminated by '|'
我正在开发一个网站,在这个网站中,我们将日语字符保存在文本字段中。
这张桌子是这样的:
| contactlogs | CREATE TABLE `contactlogs` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`contact_email` varchar(128) CHARACTER SET latin1 NOT NULL,
`name` varchar(128) CHARACTER SET latin1 DEFAULT NULL,
`company_name` varchar(128) CHARACTER SET latin1 DEFAULT N
我不喜欢数据库,下面的问题与字段可以拥有的一组值有关。我用的是MySql。
我有一个DDL表定义:
CREATE TABLE actors (
id BigInt(20) UNSIGNED NOT NULL AUTO_INCREMENT,
sample_id VarChar(128) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL,
`role` Char(2) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL,
wiews
我正在将一个字符串写入一个具有文本类型字段的数据库中。这意味着我可以将写入该字段。之后,我将得到一个SQL异常:
com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'DETAILS' at row 1
所以我现在的问题是,,如何检查我的字符串,以及如何在正确的位置剪切字符串,,它仍然适合数据库。
我知道这也取决于编码。我刚刚看到MySQL模式使用"latin1 -默认集合“字符集。
我在latin1中有一个旧的mysql数据库(mysql5.0.2),我想从其中获取数据。对于非ascii字符,我总是得到相同的输出(例如,±和α被表示为类似于十六进制的'ef bf bd‘),也就是说不同的字符以相同的方式表示。
我只需要以不同的方式获取这些字符,这样我就可以将每个字符映射到正确对应的utf-8字符。
我已经尝试过更改字符集,但它对我不起作用!
有人能帮我弄点有意义的数据吗?
var mysql = require('mysql')
var con = mysql.createConnection({
host: "localhost
我使用MySQLdump.exe创建一个dumpfile dumpfile.sql。导入此文件时,使用
mysql -u user -p test < dumpfile.sql
我碰到
错误1406:数据太长,无法在第1行column1 'mailto‘。
应该插入的值是最大值。50个字符,字段定义为char( 50 )“。该字段可以包含所有字母、数字和字符,如";”和空格。
进一步的测试表明,它与“特殊”字符有关,比如"é“。该数据库的特征是latin1 - The 1252西欧。
为什么MySQL不能导入它刚刚创建的备份文件?
在MySQL数据库中,表是用utf8编码的,但是由于某种原因,连接是用latin1编码的。
res <- RMySQL::dbSendQuery(con,"show variables like 'character_set_%'")
dbFetch(res)
Variable_name Value
1 character_set_client latin1
2 character_set_connection
我想使用mysqldump备份存储在MySQL服务器5.1.36中的mediawiki数据库。
大多数wiki文章都是用西班牙语写的,他们不想用错误的字符集创建转储。
mysql> status
--------------
...
Current database: wikidb
Current user: root@localhost
...
Server version: 5.1.36-community-log MySQL Community Server (GPL)
....
Server characterset: lat
我已经将INNODB/MySQL表中的一个字段声明为
VARCHAR(255) CHARACTER SET utf8 NOT NULL
但是,当插入数据时,我的数据被截断为255个字节,而不是字符。这可能会砍掉尾随的两个代码点i_emphasized text_n 2,留下一个无效的字符。你知道我做错了什么吗
编辑:
示例会话如下所示
mysql> update channel set comment="ᚠᛇᚻ᛫ᛒᛦᚦ᛫ᚠᚱᚩᚠᚢᚱ᛫ᚠᛁᚱᚪ᛫ᚷᛖᚻᚹᛦᛚᚳᚢᛗ ᛋᚳᛖᚪᛚ᛫ᚦᛖᚪᚻ᛫ᛗᚪᚾᚾᚪ᛫ᚷᛖᚻᚹᛦᛚᚳ᛫ᛗᛁᚳᛚᚢᚾ᛫ᚻᛦᛏ᛫ᛞᚫᛚᚪᚾᚷᛁᚠ᛫ᚻᛖ᛫ᚹᛁᛚᛖ᛫ᚠᚩᚱ᛫ᛞᚱ
我们目前的数据库是MySQL 5.1,它为许多Delphi和基于Web的应用程序提供服务.数据库是以默认的时间设置的,因此所有表都设置为latin1。
我们看到一个奇怪的问题,当我们的一个表被查询而没有应用Group函数时,结果返回为utf8,但是当应用Group时,当在Workbench中查看字段类型时,结果返回为latin1。
一个例子:SELECT jb_numb, jb_name FROM job WHERE jb_numb = 1234返回
然而,SELECT jb_numb, jb_name FROM job WHERE jb_numb = 1234 GROUP BY jb_
在MySQL/MariaDB中,我将连接字符集设置为UTF-8:
SET NAMES 'utf8mb4';
SET CHARACTER SET 'utf8mb4';
其中有些表具有latin1_swedish_ci排序规则和latin1编码数据。来自他们的SELECTing给了我正确的UTF-8数据。
当我将集合名称、字符集合并到程序启动代码中时,我假设可以将插入字符串中的UTF-8编码数据提供给MySQL服务器,它将根据表/列排序规则对其进行转换。这一假设来自于我在本地用MariaDB进行的测试,它就是在这里工作的。然后在生产站点上使用MySQL: UTF-8
script/generate acts_as_taggable_on_migration
rake db:migrate
原因
Mysql::Error: Specified key was too long; max key length is 1000 bytes: CREATE INDEX `index_taggings_on_taggable_id_and_taggable_type_and_context` ON `taggings` (`taggable_id`, `taggable_type`, `context`)
我该怎么办?
下面是我的数据库编码:
mysql>
我有一个SQL转储,我想导入它。首先,我在终端上尝试了这个:
mysql -u root -ppass
create database db_name character set utf8 collate utf8_general_ci;
mysql -u root -ppass db_name < dump.sql
我得到了错误:
ERROR 1253 (42000) at line 23: COLLATION 'utf8_unicode_ci' is not valid for CHARACTER SET 'latin1'
所以,我想这意味着我试图导入
我使用mysqlimport将一些数据从.txt文件导入到MySQL数据库表中。它似乎导入OK (没有错误消息),但显示时看起来很奇怪,无法按预期进行搜索。
这是细节。原始文本文件保存在UTF-8中,其中的记录(在文本编辑器中)如下所示。第二个字段包括换行符:
WAR-16,52 ~~~~~ Lorem ipsum dolor sit.
Lorem ipsum dolor sit.
~~~~~ ENDOFRECORD
WAR-16,53~~~~~Lorem ipsum dolor sit.
Lorem ipsum dolor sit.
Lorem ipsum dolor sit.
Lorem