小编Bil*_*win的帖子

MySQL选择最频繁的组

如何获取MySQL中每个标记最常出现的类别?理想情况下,我想模拟一个计算列模式的聚合函数.

SELECT 
  t.tag 
  , s.category 
FROM tags t 
LEFT JOIN stuff s 
USING (id) 
ORDER BY tag;

+------------------+----------+
| tag              | category |
+------------------+----------+
| automotive       |        8 |
| ba               |        8 |
| bamboo           |        8 |
| bamboo           |        8 |
| bamboo           |        8 |
| bamboo           |        8 |
| bamboo           |        8 |
| bamboo           |       10 |
| bamboo           |        8 |
| bamboo           |        9 |
| bamboo           |        8 …
Run Code Online (Sandbox Code Playgroud)

mysql group-by frequency greatest-n-per-group

9
推荐指数
1
解决办法
5105
查看次数

SQL查询的指数速度呈指数级增长

我有一个联系消息系统的查询,我做的连接越多,指数越来越慢.

表结构基本上是联系表和联系人字段表.

查询多次加入联系人字段表,对于每次加入,它需要两倍的时间.

这是查询.

SELECT  SQL_CALC_FOUND_ROWS
    `contact_data`.`id`,
    `contact_data`.`name`,
    `fields0`.`value` AS `fields0`,
    `fields1`.`value` AS `fields1`,
    `fields2`.`value` AS `fields2`,
    ...etc...
    CONTACT_DATA_TAGS(
        GROUP_CONCAT(DISTINCT `contact_data_tags`.`name`),
        GROUP_CONCAT(DISTINCT `contact_data_assignment`.`user`),
        GROUP_CONCAT(DISTINCT `contact_data_read`.`user`)
    ) AS `tags`,
    GROUP_CONCAT(DISTINCT `contact_data_assignment`.`user`) AS `assignments`,
    `contact_data`.`updated`,
    `contact_data`.`created`
FROM
    `contact_data`
LEFT JOIN contact_data_tags ON contact_data.`id` = contact_data_tags.`data`
LEFT JOIN contact_data_assignment ON contact_data.`id` = contact_data_assignment.`data`
LEFT JOIN contact_data_read ON contact_data.`id` = contact_data_read.`data`
LEFT JOIN contact_data_fields AS fields0 ON contact_data.`id` = fields0.`contact_data_id` AND fields0.`key` = :field1
LEFT JOIN contact_data_fields AS fields1 ON contact_data.`id` = fields1.`contact_data_id` AND …
Run Code Online (Sandbox Code Playgroud)

mysql sql performance entity-attribute-value

9
推荐指数
1
解决办法
1467
查看次数

RoR:has_one"或其他"?(或者,没有继承的多态性.)

嘿所有,我对我的项目有一些有趣的要求.我需要一个has_one关系,它可以是一个类或另一个类,但没有继承.如果它是唯一的方法,我可以逃脱继承,但两个相关记录具有完全不同的数据,并且根本不相关.

我需要弄清楚的是以下内容.

# 1. Foo never belongs to anything.
# 2. Foo MUST have one assigned sub-record for validity.
# 3. Foo can only have either Bar or Baz assigned.
# 4. Bar and Baz have only ONE common property, and aren't
#    related in either data or implementation.

class Foo < ActiveRecord::Base
  # Attributes: id, name, value
  has_one :assignment, :foreign_key => 'assigned_to', :readonly => true
          # Could really use an :object_type for has_one here...
end

class Bar …
Run Code Online (Sandbox Code Playgroud)

polymorphism activerecord ruby-on-rails has-one polymorphic-associations

8
推荐指数
1
解决办法
1866
查看次数

获取MySQL数据库中的链表

我有一个具有这种结构的MySQL数据库表:

table
    id INT NOT NULL PRIMARY KEY
    data ..
    next_id INT NULL
Run Code Online (Sandbox Code Playgroud)

我需要按链表顺序获取数据.例如,给定这些数据:

 id | next_id
----+---------
  1 |       2
  2 |       4
  3 |       9
  4 |       3
  9 |    NULL
Run Code Online (Sandbox Code Playgroud)

我需要按顺序获取id = 1,2,4,3,9的行.如何使用数据库查询执行此操作?(我可以在客户端完成.我很好奇是否可以在数据库端完成.因此,说这是不可能的(没有足够的证明)).

有一个终止点也是很好的(例如,在10次提取后停止,或者当行上的某些条件变为真时),但这不是必需的(可以在客户端完成).我(希望我)不需要检查循环引用.

mysql linked-list hierarchical-data data-structures

8
推荐指数
2
解决办法
1万
查看次数

Zend Db避免了sql注入

我有以下代码:

public function checkLoginDetails($email, $password) {
    $select = $this->select ();
    $select->where ( "password=?", md5($password) );
    $select->where ( "email=?", $email );
    return $this->fetchRow($select);

}
Run Code Online (Sandbox Code Playgroud)

电子邮件和密码直接来自用户.我是否需要使用mysql_real_escape_string过滤电子邮件,或者Zend DB是否为我做了?

谢谢!

sql zend-framework sql-injection zend-db

8
推荐指数
1
解决办法
3007
查看次数

使用SQLite创建列表树

我正在尝试使用PHP和SQLite表设置创建一个分层列表,如下所示:

    |   itemid  |   parentid    |   name    |
    -----------------------------------------
    |   1       |   null        |   Item1   |
    |   2       |   null        |   Item2   |
    |   3       |   1           |   Item3   |
    |   4       |   1           |   Item4   |
    |   5       |   2           |   Item5   |
    |   6       |   5           |   Item6   |
Run Code Online (Sandbox Code Playgroud)

这些列表将使用无序列表构建,并允许这种类型的树结构:

Item1
    |_Item3
    |_Item4
Item2
    |_Item5
        |_Item6
Run Code Online (Sandbox Code Playgroud)

我已经看到这对目录和平面数组完成了,但我似乎无法使其正常使用此结构并且没有深度限制.

php sqlite hierarchical-data

8
推荐指数
2
解决办法
2486
查看次数

mysql表结构建议?

这个表对mysql有什么好处吗?我希望将来能够灵活地使用这种类型的数据存储.使用此表结构,您不能使用PRIMARY KEY而是索引...

我应该更改表格的格式以包含标题 - 主键,宽度,长度,空格,耦合......

ID_NUM  Param   Value
1   Width   5e-081
1   Length  12
1   Space   5e-084
1   Coupling    1.511
1   Metal Layer     M3-0
2   Width   5e-082
2   Length  1.38e-061
2   Space   5e-081
2   Coupling    1.5
2   Metal Layer     M310
Run Code Online (Sandbox Code Playgroud)

mysql entity-attribute-value

8
推荐指数
1
解决办法
4069
查看次数

MySQL子查询 - 只查找LEFT JOIN中的第一条记录

我正在尝试显示成员记录列表,我有一些表用于显示我需要的内容.

这很容易.我需要帮助的部分是一个表,每个成员记录有许多记录:登录历史记录

我想只显示每个成员记录的第一行,它存在于"登录历史记录"表中.或者,我可能想要翻转并在Login History表中显示最后一条记录.

这是我到目前为止所得到的:

SELECT m.memberid, m.membername, m.gender, mp.phone
FROM tbl_members m, 
     tbl_members_phones mp, 
     tbl_members_addresses ma
WHERE m.defaultphoneid = mp.phoneid
AND m.defaultaddressid = ma.addressid
Run Code Online (Sandbox Code Playgroud)

所以这会回报预期的结果.

tbl_members_login_history我要添加到返回结果的2列是:mh.loggedtime,嗯.ipaddy

我知道添加tbl_members_login_history作为LEFT JOIN将返回重复项,所以我认为这里必须有一个Subquery必需,以便只返回memberid存在于其中的第一条记录tbl_members_login_history.

我担心的是,如果历史表中没有记录,我仍然希望显示该成员信息,但将历史记录列保留为NULL.

这会是一个子查询事件吗?如果是这样,如何添加那种LIMIT?

mysql subquery greatest-n-per-group

8
推荐指数
1
解决办法
1万
查看次数

MySQL是否会更新所有插入的索引?我可以在每次插入x后更新它吗?

我有一些有关MySQL索引的相关问题:

  1. 每次插入东西时,MySQL都会更新索引吗?
  2. 当MySQL由于插入而更新索引时,它会重建整个索引吗?
  3. 有没有办法让MySQL在每个x插入之后更新索引?

我的应用程序中有很多插入,我担心MySQL会在每次插入后重建索引。数据不必是实时的,因此我可以在插入特定数量的数据后(如有可能)更新索引。

mysql sql indexing

8
推荐指数
1
解决办法
2810
查看次数

如何在mysql命令行工具中更改目录?

mysql在Linux下使用命令行客户端来处理MySQL数据库.如何更改当前工作目录?我没有在文档中找到它.


编辑:这不是上述问题的重复,因为OP限制使用系统的解决方案,他们只是回答如何运行系统命令,它显然从未与系统一起工作.对于如何进入cd,这不是一个好的规范问题mysql.永远不会有一个好的答案.

mysql shell working-directory

8
推荐指数
2
解决办法
8570
查看次数