小编You*_*nse的帖子

SQL计数多个列和行的特定值

我觉得这应该很容易,但似乎无法找到解决方案.假设我有下表:

|--------||---||---||---||---||---||---||---|
|Company ||q1 ||q2 ||q3 ||q4 ||q5 ||q6 ||q7 |
|--------||---||---||---||---||---||---||---|
|abc     ||1  ||2  ||1  ||3  ||2  ||2  ||1  |
|abc     ||2  ||2  ||1  ||2  ||3  ||1  ||1  |
|abc     ||1  ||1  ||3  ||3  ||1  ||2  ||2  |
|abc     ||1  ||2  ||1  ||3  ||0  ||1  ||3  |
Run Code Online (Sandbox Code Playgroud)

我想计算表中出现"1"的次数,因此在这种情况下,查询应该以12结果.我尝试"硬编码"它,就像下面的查询一样.但这只会导致行包含1,所以在这种情况下4.我如何计算'1'出现的次数,从而导致计数为12?

SELECT COUNT(*) 
FROM table
WHERE Company = 'abc'
AND (
q1 =  '1'
OR q2 =  '1'
OR q3 =  '1'
OR q4 =  '1'
OR q5 =  '1'
OR q6 …
Run Code Online (Sandbox Code Playgroud)

mysql sql

6
推荐指数
1
解决办法
701
查看次数

编程第一,框架第二?

首先问好我的第一个问题.

寻找指导而不是编码修复.2004年Informix 4gl收缩的最后一次闪现让我感到厌烦.总而言之,我希望通过创建一个网站再次编码.我将使用PHP v5和MySQL.

花了大约一年时间(业余时间)为一般的古典音乐事件数据库进行所有数据分析和数据库设计.这意味着要浏览主要艺术中心的活动手册.我最初学习音乐,所以我在这里结合了我的两个主要兴趣.在MS Access中原型,但将导出到MySQL.

所以,这是决定时间.我得出的结论是,我需要首先在PHP中编写代码,然后使用框架,例如CodeIgniter(看看),因为这是我的第一个PHP项目.这意味着在继续之前我会知道幕后发生了什么.我将为项目的一部分编写大约6个月的代码,然后考虑使用框架,即使它意味着重写我的初始代码.

任何想法都非常感激.

php sql database-design codeigniter

5
推荐指数
2
解决办法
921
查看次数

php共享不同用户/会话之间的变量

我希望有一个变量对访问系统的所有不同用户/客户端具有相同的值.

变量的值也必须是可修改的.

就像任何一个用户更改了值一样,更改也必须反映给所有其他用户.

php

5
推荐指数
2
解决办法
4332
查看次数

为什么我们需要计算从1970年开始的时间?

在大多数编程或脚本语言(如PHP或JavaScript)中,我遇到了时间函数,它倾向于计算从1970年开始的时间.例如在javascript中,如果我使用函数getTime()或在PHP中使用时间()它返回一个整数值.

在PHP中.

代码<?php echo time(); ?>返回一个整数值1281694425,PHP返回的值解释了什么?它是如何以及何时有用的?

在javascript中,getTime()返回自1970年以来的浮点值.通过在JS中使用以下脚本

<script type="text/javascript">
var d=new Date();
document.write(d.getTime() + " milliseconds since 1970/01/01");
</script>
Run Code Online (Sandbox Code Playgroud)

我想知道这种类型的函数何时有用?我们如何使用它?

PS:计算时间间隔有用吗?或者它用于存储当前时间戳?

javascript php time date unix-timestamp

5
推荐指数
2
解决办法
1592
查看次数

escape_string和real_escape_string有什么区别?

我正在做dreamviewer.当我尝试编写基本语法时,它通常会自动填充.在此输入图像描述

如您所见,它为"escape"提供了两种变体:real_escape_string和escape_string.我想知道,他们之间有什么区别吗?

php mysqli

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

MySQL状态“关闭表”花费了两倍的时间

我有一个删除查询,需要很长时间。当我签入时processlist,状态显示为“正在关闭表格 ”。关闭表需要很长时间。

示例:
我运行一个查询,总时间为1:42秒,其中80-90秒用于关闭表。

这是发生了像所有的查询load dataselectinsert

以下是my.cnf设置:

key_buffer_size = 2G
sort_buffer_size = 8M
read_buffer_size = 10M
read_rnd_buffer_size = 10M
join_buffer_size = 2M
bulk_insert_buffer_size = 100M
myisam_sort_buffer_size = 64M

#tmp_table_size = 100M
#max_heap_table_size = 64M
#max_allowed_packet = 64M

table_cache=1024
Run Code Online (Sandbox Code Playgroud)


我的记忆信息

[root@localhost ~]# free -m
             total       used       free     shared    buffers     cached
Mem:          7862       6686       1175          0         11       4091
-/+ buffers/cache:       2583       5278
Swap:        15998         18      15980
Run Code Online (Sandbox Code Playgroud)


请告诉我 …

mysql performance

5
推荐指数
1
解决办法
7194
查看次数

尝试/捕获mysqli

我正在学习OOP mysqli课程。连接到数据库时,他们使用以下脚本:

$db = new mysqli("host", "user", "password", "database");
if ($db->connect_error){
    $error = $db->connect_error;
    echo("Not connected: " . $error);
}
Run Code Online (Sandbox Code Playgroud)

不过,稍后,他们使用try / catch块调用数据库连接文件:

try {
    require_once "connection.php";
}catch (Exception $e){
    $error = $e->getMessage();
    echo $error;
}
Run Code Online (Sandbox Code Playgroud)

尝试连接后,连接文件不是立即处理了可能的连接错误吗?try / catch块基本上在做同样的事情吗?还是try / catch块正在寻找其他类型的错误?

更新:为了澄清,在阅读了一些答案之后。当我这样做时:

try {
    $db = new mysqli("host", "user", "password", "database");
}catch (Exception $e){
    $error = $e->getMessage();
    echo $error;
}
Run Code Online (Sandbox Code Playgroud)

假设数据库访问数据是错误的(例如错误的主机),我会收到PHP警告,但catch块中不会输出错误。捕获是否应该检测到此错误?

php mysqli try-catch

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

在与每个其他用户的每次对话中查询最新消息

我有一个messages用户之间的对话表。表列的名称是:

messageID | fromUser | forUser | message | submitDate | seen
Run Code Online (Sandbox Code Playgroud)

样本数据:

1  |  1 | 2 | "hi"             | "12341" | 0
2  |  2 | 1 | "hi"             | "12342" | 0
3  |  1 | 3 | "hi"             | "12343" | 0
4  |  1 | 4 | "hi 4"           | "12344" | 0
5  |  2 | 1 | "hello"          | "12345" | 0
6  |  1 | 2 | "hello how r …
Run Code Online (Sandbox Code Playgroud)

mysql sql

5
推荐指数
1
解决办法
2472
查看次数

PHP带有双引号的json_encode数据

我正在使用这个简单的代码将数据库查询结果转换为JSON格式:

$result = $mysqli->query("
    SELECT  
        date as a 
        , sum(sales) as b
        , product as c
    FROM  
        default_dataset
    GROUP BY
        date
        , product
    ORDER BY
        date        
");

$data = $result->fetch_all(MYSQLI_ASSOC);

echo stripslashes(json_encode($data));
Run Code Online (Sandbox Code Playgroud)

问题是如果此查询返回的数据中存在双引号(例如,在产品列中).json_encode函数不会以良好的JSON格式对数据进行编码.

有人可以帮我如何转义查询返回的双引号?谢谢.

php json

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

什么是插件以及它在 mysql 中是如何工作的?

我在MySql官方网站(https://dev.mysql.com/doc/refman/5.1/en/partitioning.html)探索分区。在第一页,我发现plugins.

mysql> show plugins;
+----------------------------+----------+--------------------+---------+---------+
| Name                       | Status   | Type               | Library | License |
+----------------------------+----------+--------------------+---------+---------+
| binlog                     | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| mysql_native_password      | ACTIVE   | AUTHENTICATION     | NULL    | GPL     |
| mysql_old_password         | ACTIVE   | AUTHENTICATION     | NULL    | GPL     |
| sha256_password            | ACTIVE   | AUTHENTICATION     | NULL    | GPL     |
| MyISAM                     | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     | …
Run Code Online (Sandbox Code Playgroud)

mysql mariadb

5
推荐指数
1
解决办法
820
查看次数