Tag: MySQL

MySQL查询查找逗号分隔的string中的值

我有一个字段COLORS (varchar(50))在我的表SHIRTS ,其中包含逗号分隔的string,如1,2,5,12,15, 每个数字代表可用的颜色。 当运行查询select * from shirts where colors like '%1%'得到所有的红色衬衫(颜色= 1),我也得到了颜色是灰色(= 12)和橙色(= 15)的衬衫。 我应该如何重写查询,只select颜色1而不是所有包含数字1的颜色?

CONCAT'ing NULL字段

我有一个表有三个字段,名字,姓氏和电子邮件。 以下是一些虚拟数据: FirstName | LastName | Email Adam West adam@west.com Joe Schmoe NULL 现在,如果我这样做: SELECT CONCAT(FirstName, LastName, Email) as Vitals FROM MEMBERS 乔的重要性是空的,因为有一个空字段。 你如何克服这种行为? 另外,这是MS SQL Server中的默认行为吗?

从MySQL切换到Cassandra – 优点/缺点?

有一点背景 – 这个问题涉及一个运行在单个小型EC2实例上的项目,即将迁移到一个中型项目。 主要组件是Django,MySQL以及大量使用python和java编写的自定义分析工具,这些工具很繁重。 同一台机器也在运行Apache。 数据模型如下所示 – 来自各种networking传感器的大量实时数据stream入,理想情况下,我希望build立一种长期轮询方法,而不是每15分钟进行一次当前轮询(限制计算统计信息并写入数据库本身)。 一旦数据进入,我将原始版本存储在MySQL中,让分析工具在这些数据上松动,并将统计数据存储在另外几个表中。 所有这些都是使用Django呈现的。 我需要的关系特性 – 按照[Cassandra的API中的SliceRange似乎可以满足这个] 通过…分组 许多表之间的许多关系[Cassandra SuperColumns似乎对一对多来说都不错] 狮身人面像在这给了我一个很好的全文引擎,所以这也是必要的。 [在Cassandra,Lucandra项目似乎满足了这个需求] 我的主要问题是数据读取速度非常慢(写入也不是那么热)。 我现在不想在它上面投入大量的金钱和硬件,而且我更喜欢随着时间的推移可以轻松扩展的东西。 在这个意义上(或便宜的),纵向扩展MySQL并不是微不足道的。 所以基本上,在阅读了很多关于NOSQL并且尝试了MongoDB,Cassandra和Voldemort之后,我的问题是, 在一个中等的EC2实例中, 我是否可以通过转向Cassandra这样的东西来获得读/写的好处 ? 这篇文章 (pdf)绝对似乎表明这一点。 目前,我会说每分钟写几百个将是常态。 对于读取 – 由于数据每5分钟更改一次,所以caching失效必须很快发生。 在某些时候,它也应该能够处理大量的并发用户。 目前,即使创build索引,MySQL在大型表上进行一些连接也会导致应用程序性能下降 – 大约32k行的内容需要超过一分钟才能完成。 (这也可能是EC2虚拟化I / O的人为因素)。 表格大小约为4-5百万行,大约有5个这样的表格。 每个人都在谈论如何在多个节点上使用Cassandra,给出CAP定理和最终的一致性。 但是,对于一个刚刚开始发展的项目, 部署一个节点cassandra服务器是否有意义 ? 有没有什么警告? 例如,它可以取代MySQL作为Django的后端? [这是推荐?] 如果我转移,我猜我必须重写应用程序的部分做更多的“administrivia”,因为我不得不做多个查询来获取行。 将MySQL用作关键值存储而不是关系引擎会有什么意义吗? 这样我可以利用大量稳定的API以及稳定的引擎(并根据需要去关联)。 (来自Friendfeed的Brett Taylor的post – http://bret.appspot.com/entry/how-friendfeed-uses-mysql ) 任何人谁已经做了转变的任何见解将不胜感激! […]

Python的问题:无法findvcvarsall.bat

可能重复: 错误:无法findvcvarsall.bat 我试图为Python安装MySql接口,但我得到一个错误(下面提到)。 我知道解决scheme:安装Microsoft Visual C ++。 除了安装Microsoft Visual C ++之外,是否还有其他解决scheme? 我的意思是这真的伤害了我; 为什么要安装Microsoft Visual C ++只是为了构build这个单一的包,从开发人员的angular度来看,这是一个无用的浪费时间的方法。 这个问题有没有其他解决scheme? MySQL-python-1.2.3c1>setup.py install running install running bdist_egg running egg_info writing MySQL_python.egg-info\PKG-INFO writing top-level names to MySQL_python.egg-info\top_level.txt writing dependency_links to MySQL_python.egg-info\dependency_links.txt reading manifest file 'MySQL_python.egg-info\SOURCES.txt' reading manifest template 'MANIFEST.in' writing manifest file 'MySQL_python.egg-info\SOURCES.txt' installing library code to build\bdist.win32\egg running install_lib […]

SQL仅当logging不存在时插入到表中

我想要运行一组查询来将一些数据插入到一个SQL表中,但只有满足某些条件的logging才会被满足。 该表有4个字段: id (主), fund_id , date和price 我在查询中有3个字段: fund_id , date和price 。 所以我的查询会像这样: INSERT INTO funds (fund_id, date, price) VALUES (23, '2013-02-12', 22.43) WHERE NOT EXISTS ( SELECT * FROM funds WHERE fund_id = 23 AND date = '2013-02-12' ); 所以我只想插入数据,如果匹配的fund_id和date的logging不存在。 如果以上是正确的,那么我认为这是一个非常低效的方法,因为每次都必须运行额外的select语句。 有没有更好的方法来达到上述目的? 编辑:澄清既不fund_id也不是唯一的领域; 共享相同的fund_id或date的logging将存在,但是没有logging应该具有与另一个相同的fund_id和date。

将IPv4,IPv6地址存储为string的大小

在MySQL数据库中存储IPv4,IPv6地址作为string的理想大小应该是多less。 应该varchar(32)是足够的?

MySQL INNER JOIN只从第二个表中select一行

我有一个users表和payments表,为每个用户,其中有付款,可能有多个关联付款的payments表。 我想select所有有付款的用户,但只select他们的最新付款。 我正在尝试这个SQL,但我从来没有尝试嵌套的SQL语句之前,所以我想知道我做错了什么。 感谢帮助 SELECT u.* FROM users AS u INNER JOIN ( SELECT p.* FROM payments AS p ORDER BY date DESC LIMIT 1 ) ON p.user_id = u.id WHERE u.package = 1

如何从MySQL只转储特定的表?

如果我的数据库有10个表,我只想转储3个表,是否有可能与mysqldump命令?

如何在MySQL select语句中编写条件?

我正在使用MySQL,我想在我的SQL中做一种三元语句,如: SELECT USER_ID, ((USER_ID = 1) ? 1 : 0) AS FIRST_USER FROM USER 结果将类似于: USER_ID | FIRST_USER 1 | 1 2 | 0 3 | 0 etc. 如何做到这一点?

当进行多个连接时,MySQL不正确的tmp表的密钥文件

我不是经常来这里寻求帮助,但是我很沮丧,我希望以前有人遇到过。 每当我尝试使用多个连接从表中获取logging,我得到这个错误: #126 – Incorrect key file for table '/tmp/#sql_64d_0.MYI'; try to repair it 所以这个查询会产生错误: SELECT * FROM `core_username` INNER JOIN `core_person` ON (`core_username`.`person_id` = `core_person`.`id`) INNER JOIN `core_site` ON (`core_username`.`site_id` = `core_site`.`id`) ORDER BY `core_username`.`name` ASC LIMIT 1 但是这个不会: SELECT * FROM `core_username` INNER JOIN `core_person` ON (`core_username`.`person_id` = `core_person`.`id`) ORDER BY `core_username`.`name` ASC […]