社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  O. Jones  »  全部回复
回复总数  9
3 年前
回复了 O. Jones 创建的主题 » MySQL和PHP UTC时间在数字格式时不同

时区处理可能是xss的一大难题。

  • 1632383646是协调世界时07:54:06,欧洲中部时间09:54:06
  • 1632390846是09:54:06 UTC,11:54:06 CET

php的 time() 总是返回 UNIX timestamp

但是,php strtotime() 函数接受日期/时间字符串 2021-09-23 09:54:06 好像是在当地时间 并将其转换为UNIX时间戳。你的机器设置为CET(+02:00),所以 strtime() 减去两个小时得到时间戳,时间戳假定始终以UTC为单位。

在应用程序设计方面,使用MySQL进行所有时区处理可能是明智的。已经安排好了 remarkably well 为了那项任务。

  1. 始终使用时间戳数据类型。这样,所有存储的日期/时间值都将以UTC为单位。

  2. 如果你想全球化,让每个用户选择自己的时区偏好,用字符串 Europe/Amsterdam Asia/Kolkata . See this .

  3. 当您代表用户对数据库运行查询时,首先给出以下MySQL语句

    SET time_zone = ###user-preference-string###
    

  4. 运行数据库维护查询时,首先说

    SET time_zone = 'utc'
    

    您的输出将以UTC为单位。

3 年前
回复了 O. Jones 创建的主题 » 进口。使用加载数据在MySQL中创建csv文件

你能读懂你的书吗。是否将csv文件正确转换为Excel或LibreOffice Calc(或任何电子表格程序)?我想你可能可以。这意味着它的格式正确。

.csv文件包含表中每行数据的一行文本。这些 LOAD INFILE 指令告诉MySQL如何在中查找行和列。csv文件。

FIELDS TERMINATED BY ',' 表示每列数据以逗号结尾。注意你的第一行数据:

De Ruijterkade,,123400000001234,,1,105... 

第一列是街道名称。第二个是空的,第三个是空的 1 第四 105 等等。

ENCLOSED BY '"' 表示本身包含逗号(字段终止符)的数据列必须包含在 " 角色。例如,如果您的街道名称具有 De Ruijterkade, Kade 你的文件将包含

"De Ruijterkade, Kade",,123400000001234,,1,105... 

最后 LINES TERMINATED BY '\r\n' 表示文件中的每一行(表中的行)都以Windows样式结束 <return><linefeed> 角色对。

Akina正确地指出了文件。 https://dev.mysql.com/doc/refman/8.0/en/load-data.html#load-data-field-line-handling

3 年前
回复了 O. Jones 创建的主题 » 从mysql生成html选项列表的最有效方法是什么?

我会从表面上看你客户的要求,即使如果我不得不使用5000个元素的下拉菜单,我也会发疯。

你可以考虑使用 HTML5 datalist element 来改进一下这个用户体验。

从php的角度来看,生成这段代码的方式可能并不重要。然而,从MySQL的角度来看,使用 while loop——你的第一选择——更好。为什么?

  • 如果使用组_CONCAT()生成长字符串,则需要设置。读这个。 MySQL and GROUP_CONCAT() maximum length 一个聪明的开发人员,尤其是在面对一个奇怪的需求时,会保持它的简单。

  • 逐行处理中等大小的结果集可以减少php程序和MySQL服务器中的RAM需求。

  • 当你或其他人需要更好地利用这种用户体验时,阅读起来会更容易。

3 年前
回复了 O. Jones 创建的主题 » MySQL查询-待批好友/用户和好友之间的关系

你试过这个吗?它将在两个ID中的任何一个上连接。

...
LEFT JOIN g_users ON ( g_relationship.request_id = g_users.id OR
                       g_relationship.receiver_id = g_users.id )  
WHERE g_users.id = 4 
3 年前
回复了 O. Jones 创建的主题 » 使用MySQL workbench使用两个标准识别重复项

将您的查询用作子查询,并围绕它包装另一个查询。(从子查询生成查询是 结构化的 在里面 结构化查询语言 ).

像这样的东西可能有用。

SELECT Composer, SUM(tracks) duplicate_tracks
  FROM (SELECT Name, Composer, Count(*) tracks 
               FROM Track
              GROUP BY Name, Composer
             HAVING COUNT(*) > 1
       ) duptracks
 GROUP BY Composer
 ORDER BY COUNT(*) DESC;

它将您的查询当作一个表(实际上是一个虚拟表)使用,并在其上运行GROUP BY。要以这种方式使用查询,它需要在 COUNT(*) 我给它起了个名字 tracks .它还需要在子查询中输入名称。我曾经 duptracks 为此。

外部查询将composer的所有重复曲目与 SUM() ... GROUP BY Composer 然后命令他们首先向作曲家呈现重复最多的曲目。

但请注意,这对您的 Composer 列作为一个整体。它将使用 John, Paul, Ringo, George 就好像他们只是一个作曲家,而不是每个人的重复数。

6 年前
回复了 O. Jones 创建的主题 » 在mysql中为每月事件添加天数

你需要一个稍微不同的 ON SCHEDULE 短语。

 AT '2018-04-01 03:01' + INTERVAL 5 DAY EVERY MONTH

在每个月的第五天当地时间03:01开始您的活动。

03:01 是安排工作的好时机,因为它不会被标准时间/夏令时切换搞砸。

11 年前
回复了 O. Jones 创建的主题 » 查找包含给定坐标的圆的mysql查询

我必须把这件事做得很详细,所以我要和大家分享我的结果。这使用了 zip 表与 latitude longitude 桌子。它不依赖于谷歌地图,而是可以将其适配到包含LAT/LUN的任何表中。

SELECT zip, primary_city, 
       latitude, longitude, distance_in_mi
  FROM (
SELECT zip, primary_city, latitude, longitude,r,
       (3963.17 * ACOS(COS(RADIANS(latpoint)) 
                 * COS(RADIANS(latitude)) 
                 * COS(RADIANS(longpoint) - RADIANS(longitude)) 
                 + SIN(RADIANS(latpoint)) 
                 * SIN(RADIANS(latitude)))) AS distance_in_mi
 FROM zip
 JOIN (
        SELECT  42.81  AS latpoint,  -70.81 AS longpoint, 50.0 AS r
   ) AS p 
 WHERE latitude  
  BETWEEN latpoint  - (r / 69) 
      AND latpoint  + (r / 69)
   AND longitude 
  BETWEEN longpoint - (r / (69 * COS(RADIANS(latpoint))))
      AND longpoint + (r / (69 * COS(RADIANS(latpoint))))
  ) d
 WHERE distance_in_mi <= r
 ORDER BY distance_in_mi
 LIMIT 30

看看查询中间的这一行:

    SELECT  42.81  AS latpoint,  -70.81 AS longpoint, 50.0 AS r

这将搜索 拉链 距纬度/经度点42.81/-70.81 50.0英里内的表。当你将其构建到一个应用程序中时,你可以在其中放置自己的点和搜索半径。

如果你想以公里而不是英里为单位工作,那就换 69 111.045 变化 3963.17 6378.10 在查询中。

这是一份详细的书面报告。我希望它能帮助别人。 http://www.plumislandmedia.net/mysql/haversine-mysql-nearest-loc/

6 年前
回复了 O. Jones 创建的主题 » mysql workbench生成的sql代码中出现错误1064

埃德·科特雷尔是对的。这是mysql服务器版本和mysql工作台设置之间的版本不匹配。

  1. SELECT VERSION(); 让你的服务器告诉你它的版本。
  2. 在workbench中,编辑/preferences/modeling>mysql,并设置 默认目标MySQL版本 到您的服务器版本。

然后workbench将生成适合您实际使用的服务器的代码。

对于新用户来说,这个错误很可能发生;新下载的Workbench软件的默认设置是MySQL8,但是世界上很多服务器还没有在版本8上。

6 年前
回复了 O. Jones 创建的主题 » mysql使用什么文件系统?

mysql使用什么文件系统?

mysql访问方法代码(innodb、myisam、ariadb等)使用主机操作系统上主机卷的本机文件系统。Windows上的NTFS、U**X系统上的ext4fs等。有能力的平台端口使用各种I/O技术,包括内存映射、分散/聚集和普通读写系统调用,并与文件系统的日志记录功能集成。具体使用的技术取决于查询的类型、访问方法和缓存的状态。

提示: 不要担心性能问题,除非你的服务器运行在一个32位的486机器上,你可以在一个仓库里找到它(或者除非你有数百万的用户和数十亿行的数据)。