小编Bil*_*win的帖子

MySQL为多列选择语句DISTINCT

我目前正在尝试构建一个有点棘手的MySQL Select语句.这是我想要完成的:

我有这样一张桌子:

data_table

uniqueID      stringID          subject
  1             144           "My Subject"
  2             144           "My Subject - New"
  3             144           "My Subject - Newest"
  4             211           "Some other column"
Run Code Online (Sandbox Code Playgroud)

基本上,我想要做的是能够SELECT/GROUP BY stringID(stringID是线程化的图片)而不是重复.此外,我想选择最近的stringID行(在上面的例子中是uniqueID 3).

因此,如果我要查询数据库,它将返回以下内容(最新的uniqueID位于顶部):

uniqueID   stringID    subject
 4          211        "Some other column"  
 3          144        "My Subject - Newest" //Notice this is the most recent and distinct stringID row, with the proper subject column.
Run Code Online (Sandbox Code Playgroud)

我希望这是有道理的.谢谢你的帮助.

mysql select greatest-n-per-group

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

Zend Forms - populate()和setDefaults()

假设我有一个收集名字和姓氏的表格:

$first_name = new Zend_Form_Element_Text('first_name');
$first_name->setLabel("First Name")
    ->setRequired(true);

$last_name = new Zend_Form_Element_Text('last_name');
$last_name->setLabel("Last Name")
    ->setRequired(true);

$form = new Zend_Form();
$form->addElement($first_name)
    ->addElement($last_name)
Run Code Online (Sandbox Code Playgroud)

如果我想在表单上使用"populate($ data)"或"setDefaults($ data)"方法,那么数组是如何组织的呢?这些函数期望什么样的数组?我无法在文档中找到此信息.

另外,我知道我可以在创建元素时设置值,但这不是我需要的.

php forms zend-framework

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

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
查看次数

数组,EAV,自定义字段的序列化LOB?

我一直在尝试为在线应用程序的自定义字段回答复杂的Mysql数据结构问题.我对Mysql相当新,所以任何输入都值得赞赏.

当前数据库是关系数据库,服务的每个用户将共享相同的数据库和表.

这是我正在尝试做的一个例子.

假设我正在尝试创建一个列表.此列表最多可包含30个自定义字段.用户可以在12个唯一元素之间进行选择,每个元素最多可以包含15个用户定义的属性.

每个列表在帐户内和帐户之间都是唯一的.帐户可以有多个列表,每个列表可以具有不同数量的元素以及每个元素的不同属性.

元素可以是很多东西,例如:多项选择,单选按钮,电话字段,地址,单行文本,多行文本等.

多选(复选框)元素的属性示例可以是:红色,绿色,蓝色,橙色,白色,黑色

单行文本元素的示例可以是:名字输入字段.

每个元素还必须具有用户定义的标题字段和标记字段,可以在应用程序的其他功能中引用和使用.

分割也很重要.用户需要能够基于任何元素对列表进行分段.例如,用户可能想要基于多选项元素#1中存在"红色"的所有记录来对列表"ABC"进行分段(它们可以具有多于1个列表的多项选择元素).

在这个例子中,我假设数组,EAV,序列化LOB可以正常工作.但是,我不确定在我的规模上我的需求最好的结构是什么.

实际上,每个列表最多可能有多达50,000个记录,并且实际上有20,000多个帐户 - 每个帐户都有许多列表.因此,我正在寻找最有效和灵活的结构.

为了使事情变得更加复杂,我还需要确保在任何给定时间向任何特定列表添加/删除元素的有效方法.例如,如果用户创建一个包含最大允许自定义字段数的列表(30),然后三个月后决定要删除一个字段,我需要一种方法来查找该列表以及该自定义字段的所有关联值然后删除所有值,元素类型及其属性.然后允许用户向该列表添加新元素.

我已经回顾了本网站上的许多EAV帖子,以及http://www.martinfowler.com/eaaCatalog/serializedLOB.html由于数据,EAV似乎不能满足我的需求检索缺点.

我还想知道多维阵列在这种规模下的效果如何?我相信wordpress会将它用于自定义字段.

对于这种情况如何最好地构建数据库,将非常感谢任何输入.谢谢!

mysql field schemaless entity-attribute-value

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

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命令行工具中更改目录?

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


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

mysql shell working-directory

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

在SQL查询中选择第N个记录

我有一个SQL查询,我正在运行,但我只想选择一个特定的行.例如,假设我的查询是:

Select * from Comments
Run Code Online (Sandbox Code Playgroud)

让我们说这会返回10行,我只想选择此查询返回的第8条记录.我知道我能做到:

Select Top 5 * from Comments
Run Code Online (Sandbox Code Playgroud)

要获得该查询的前5个记录,但我只想选择某个记录,我可以在此查询中添加任何内容(类似于顶部).

谢谢

插口

sql sql-server-2005

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

将MySQL 5.6升级到5.7

我对MySQL很新,学得很快.我在我的系统上安装了WAMP,并且已经使用了一个月左右.我正在寻求将MySQL升级到5.7,因为我需要新的gis功能,但我找不到一个易于按照我需要做的事情.

我一直在MySQL上阅读它是如何完成的,但发现它要么令人困惑,要么不完整,不确定是哪一个.我已经阅读了最近6个小时,但仍然不知道如何完成.

我已经备份了我的数据库,我现在并不关心它们,因为它们仍然处于开发和学习状态,并且无论如何都会重建.

如何使用完整说明将5.6升级到5.7?

mysql mysql-5.7 mysqlupgrade

7
推荐指数
1
解决办法
8168
查看次数