Questions tagged «mysql»

MySQL是使用结构化查询语言(SQL)的免费,开放源代码关系数据库管理系统(RDBMS)。请勿将此标签用于其他数据库,例如SQL Server,SQLite等。那些是不同的数据库,它们都使用自己的SQL方言来管理数据。

1
varchar(255)vs tinytext / tinyblob和varchar(65535)vs blob / text
根据定义: VARCHAR:长度范围是1到255个字符。除非指定BINARY关键字,否则VARCHAR值将以不区分大小写的方式进行排序和比较。x + 1个字节 TINYBLOB,TINYTEXT:BLOB或TEXT列,最大长度为255(2 ^ 8-1)个字符x + 1个字节 因此,基于此,我创建了下表: CREATE TABLE `user` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(255), `lastname` tinytext, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 还是创建varchar或tinytext更好,为什么? 是否相同: VARCHAR:长度范围大于255个字符。除非指定BINARY关键字,否则VARCHAR值将以不区分大小写的方式进行排序和比较。x + 2字节 BLOB,TEXT BLOB或TEXT列,最大长度为65535(2 ^ 16-1)个字符x + 2字节
91 mysql 


14
MySQL my.ini位置
我已经看过 http://dev.mysql.com/doc/refman/4.1/en/mysql-config-wizard-file-location.html 如何知道mysql my.cnf的位置 和 http://dev.mysql.com/doc/refman/5.1/en/option-files.html 但是,我仍然会遇到古老的问题!“我的my.ini在哪里”,我将Windows Server 2008与mysql 5.5.28一起使用。我使用mysqld --install安装了服务,并且能够使用sqlyog使用mysql服务器。但不幸的是,我无法在查询中或查询installation directory中c:\都找不到my.ini,也没有返回任何内容。c:\windowsdata_dirshow variables like "mysql_home" 有什么建议么?

6
如何在MySQL中按周分组?
Oracle的表服务器提供了一个内置功能TRUNC(timestamp,'DY')。此函数将任何时间戳转换为前一个星期日的午夜。在MySQL中执行此操作的最佳方法是什么? Oracle还提供TRUNC(timestamp,'MM')了将时间戳转换为发生月份的第一天的午夜。在MySQL中,这很简单: TIMESTAMP(DATE_FORMAT(timestamp, '%Y-%m-01')) 但是这个 DATE_FORMAT技巧将在数周内失效。我知道此WEEK(timestamp)功能,但是我真的不想要一年内的星期数。这些东西是用于多年的工作。

23
如何在MySQL中模拟数组变量?
它似乎是MySQL没有数组变量。我应该怎么用呢? 似乎有两种选择建议:set-type标量表和临时表。我链接的问题暗示了前者。但是,使用这些变量而不是数组变量是一种好习惯吗?或者,如果我使用集合,那么基于集合的成语等效于foreach什么?

13
在mysql中设置全局sql_mode
我试图在mysql中设置sql_mode,但是会引发错误。 命令: set global sql_mode='NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLE','NO_AUTO_CREATE_USER','NO_ENGINE_SUBSTITUTION' 这不是设置多种模式的正确方法吗?设置会话和全局模式的优点是什么?哪有?我有不同的用户试图用不同的UNC值更新数据库,并插入od将会话模式设置为“ NO_BACKSLASH_ESCAPES”,尽管为此我可以使用一种通用的模式。这有意义吗? 请告诉我。 谢谢。
91 mysql 

9
Docker-compose检查mysql连接是否准备就绪
我试图确保我的应用容器在数据库容器启动并且准备接受连接之前不运行迁移/启动。 所以我决定使用运行状况检查,并取决于docker compose文件v2中的选项。 在应用程序中,我有以下内容 app: ... depends_on: db: condition: service_healthy 另一方面,数据库具有以下运行状况检查 db: ... healthcheck: test: TEST_GOES_HERE timeout: 20s retries: 10 我尝试了几种方法,例如: 确保已创建数据库DIR test: ["CMD", "test -f var/lib/mysql/db"] 获取mysql版本: test: ["CMD", "echo 'SELECT version();'| mysql"] 对管理员执行ping操作(将db容器标记为运行状况良好,但似乎不是有效的测试) test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"] 有人对此有解决方案吗?


11
MySQL查询以逗号分隔的字符串查找值
我的COLORS (varchar(50))表格SHIRTS中有一个字段,其中包含逗号分隔的字符串,例如1,2,5,12,15,。每个数字代表可用的颜色。 在运行查询select * from shirts where colors like '%1%'以获取所有红色衬衫(颜色= 1)时,我还获得了颜色为灰色(= 12)和橙色(= 15)的衬衫。 我应该如何重写查询,以便仅选择颜色1而不是选择所有包含数字1的颜色?
90 sql  mysql  database 

7
“ dateAdded”的默认值无效
我遇到了一个无法解决的SQL愚蠢问题。 ALTER TABLE`新闻` ADD`dateAdded` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP AUTO_INCREMENT, 添加主键(`dateAdded`) 错误: (#1067)Invalid default value for 'dateAdded' 有人可以帮我吗?
90 mysql  sql 

8
我如何优化MySQL的ORDER BY RAND()函数?
我想优化查询,以便进行调查mysql-slow.log。 我的大多数慢查询都包含ORDER BY RAND()。我找不到解决此问题的真正解决方案。MySQLPerformanceBlog有一个可能的解决方案,但我认为这还不够。在优化不佳(或频繁更新,用户管理)的表上,该表不起作用,或者我需要运行两个或多个查询才能选择PHP生成的随机行。 这个问题有解决方案吗? 一个虚拟的例子: SELECT accomodation.ac_id, accomodation.ac_status, accomodation.ac_name, accomodation.ac_status, accomodation.ac_images FROM accomodation, accomodation_category WHERE accomodation.ac_status != 'draft' AND accomodation.ac_category = accomodation_category.acat_id AND accomodation_category.acat_slug != 'vendeglatohely' AND ac_images != 'b:0;' ORDER BY RAND() LIMIT 1

5
分组时如何从表格中选择最长的“字符串”
例: SELECT partnumber, manufacturer, condition, SUM(qty), AVG(price), description FROM parts WHERE [something] GROUP BY partnumber, manufacturer, condition 我有一些描述是空白的,并且可以有很多零件号,制造商,条件值,并且在组上似乎有第一个可用的描述,可以是空白。想要获得最长的描述。 我尝试了这个: MAX(LENGTH(description)) 但是,它返回字符串中的字符数。有可能做我想在MySQL中做的事情吗?
90 mysql 

4
如何使用mysql将查询结果存储在变量中
SET @v1 := SELECT COUNT(*) FROM user_rating; SELECT @v1 当我使用set变量执行此查询时,将显示此错误。 Error Code : 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT count(*) FROM user_rating' at line 1 Execution Time : 00:00:00:000 …

6
内存有效的内置SqlAlchemy迭代器/生成器?
我有一个〜10M记录的MySQL表,可以使用SqlAlchemy进行交互。我发现对这个表的大子集的查询将消耗过多的内存,即使我以为我使用的是内置生成器,它可以智能地获取数据集的一口大小的块: for thing in session.query(Things): analyze(thing) 为了避免这种情况,我发现我必须构建自己的迭代器,该迭代器会分块地进行处理: lastThingID = None while True: things = query.filter(Thing.id < lastThingID).limit(querySize).all() if not rows or len(rows) == 0: break for thing in things: lastThingID = row.id analyze(thing) 这是正常现象还是关于SA内置发电机我缺少什么? 这个问题的答案似乎表明内存消耗是不希望的。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.