小编use*_*212的帖子

使用地理位置和距离从SQL Server数据库中选择记录

我使用SQL Server地理数据类型来存储我的数据库中的记录位置.我想选择给定位置给定距离内的所有记录:

DECLARE @location AS geography = geography::Point(@latitude, @longitude, 4326)
DECLARE @distance AS INT = 10000

SELECT * 
FROM records
WHERE records.location.STDistance(@location) <= @distance
Run Code Online (Sandbox Code Playgroud)

在我的测试数据库一对夫妇的十几记录本上运行很迅速,我没有任何问题,但我知道,WHERE子句运行STDistance针对我的数据库中的所有记录,一旦我有成千上万的记录,这将慢慢爬行.

有一个更好的方法吗?也许创建某种区域并首先在邻近区域选择数据?

sql sql-server select sqlgeography

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

有没有办法从Google应用脚本中的Gmail邮件对象中获取特定的电子邮件地址?

在Google App Scripts中处理收件箱中的电子邮件列表.从我需要的消息中获取每个消息的地址和地址.当我使用message.getFrom()方法获取from地址时,它返回如下内容:"FirstName LastName".但是,我想要的是简单的电子邮件地址:"email@domain.com"我在GmailApp对象或Message对象上找不到只返回此信息的方法.

getFrom()返回一个简单的字符串,而不是可以进一步剖析的地址对象.我错过了什么吗?

gmail google-apps-script

3
推荐指数
1
解决办法
1545
查看次数

使用JPA Hibernate创建MySQL存储过程

我正在尝试使用文本文件的内容在MySQL数据库中创建存储过程:

USE myDatabase;

DROP PROCEDURE IF EXISTS myStoredProcedure;

DELIMITER $$

CREATE PROCEDURE myStoredProcedure
(
    _description VARCHAR(50),
    _value INT
)
BEGIN

    INSERT INTO myTable
    (
        description,
        value
    ) VALUES (
        _description,
        _value
    );

    SELECT 
        id, 
        description, 
        value
    FROM myTable
    WHERE id = LAST_INSERT_ID();

END;

$$

DELIMITER ;
Run Code Online (Sandbox Code Playgroud)

我使用本机查询执行SQL:

Query query = entityManager.createNativeQuery(queryText);
...
query.executeUpdate();
Run Code Online (Sandbox Code Playgroud)

但是它在DROP PROCEDURE上出错,我注释掉了DROP PROCEDURE,然后在DELIMITER上出错,基本上,在第一个分号之后的任何行都出错了。

似乎JPA休眠正在解析我的查询并告诉我它有问题,而不是将纯文本传递给MySQL。

sql在MySQL中运行时没有错误。

我在Google中找不到关于使用JPA创建存储过程的任何信息,仅调用了一个。

有人对我可能做错的事情有任何见解吗?或者,即使有可能。

java mysql hibernate jpa

0
推荐指数
1
解决办法
104
查看次数