- MySQL函数
程序研
mysql数据库
MySQL函数概述MySQL提供了大量的内置函数,这些函数可以分为以下几类:字符串函数:用于操作字符串,如连接、查找、替换等。数值函数:用于进行数学运算,如取整、求绝对值、随机数等。日期和时间函数:用于处理日期和时间,如获取当前日期、时间差、格式化日期等。聚合函数:用于对一组值进行计算并返回单个值,如求和、平均值、最大值等。条件函数:用于根据条件返回不同的值,如IF、CASE等。加密函数:用于加密
- 小记XML写sql的聚合函数用法
J总裁的小芒果
sqlxml数据库
一、GROUP_CONCAT手动查出需要用于查询、展示的字段用法:(需要GROUPBY)将每个岗位下的姓名合并为一个以逗号分隔的字符串SELECTGROUP_CONCAT(DISTINCTu.nickNameSEPARATOR',')FROMsystem_postASpostJOINsystem_user_postASupONpost.id=up.post_idWHERE.......--DIST
- mysql函数查询sql语句遍历
大得369
mysqlmysql
CREATEDEFINER=`root`@`localhost`PROCEDURE`dadecd`()BEGIN#Routinebodygoeshere...--定义变量DECLAREsintDEFAULT0;DECLAREnamesavarchar(255);DECLAREdadesavarchar(256);--定义游标,并将sql结果集赋值到游标中DECLAREreportCURSORFOR
- 经验-总结1
DongGei
数据库java
IDEAdebug启动慢断点先全部关了group_concat的长度限制现象:roleNames直接会截取到默认的group_concat的长度限制设置(1024字节)selectgroup_concat(role.rolename)asroleNames,group_concat(role.roleId)asroleIdsfromPUB_USER_ROLE_LINKp,PUB_ROLE_INFO
- MySQL 系统学习系列 - SQL 语句 DQL 语句的使用(2)《MySQL系列篇-04》
小孔_H
MySQLmysql学习sql
SQL语句DQL聚合函数1.聚合聚合查询:指的是一个函数[聚合函数对一组执行计算并返回单一的值]聚合的目的:为了快速得到统计数据聚合函数说明count(*)表示计总行数,括号中写*与列名,结果相同max(列)表示求此列最大值min(列)表示求此列最小值sum(列)求此列的和avg(列)求此列的平均值group_concat(列)按组进行来接数据▲【分组查询】#count函数-通常配合组合一起使用#
- 云计算day21
巭氼
云计算
⼀、MySQL函数数据分析的基础1.排序1.max2.min2.汇总1.count2.sum3.avg3.数制1.⼆进制1.002.113.2104.3115.41006.2.⼋进制3.⼗进制常⽤聚合``函数统计表中数据的⾏数或者统计指定列不为空值的数据⾏个数selectcount(*或表头名)from表名;计算指定列的最⼤值,如果指定列是字符串类型(⽂字类型)则使⽤字符⾸拼排序selectmax
- mysql汇总
酸柠涛啊
mysql数据库
一、多个模糊条件查询regexp1、group_concat连接distinct去重SEPARATOR’,‘逗号分割selectFIELD_NAME字段中文名,GROUP_CONCAT(DISTINCTFIELD_CODESEPARATOR‘,’)字段英文名fromda_dp_table_fieldwhereFIELD_NAMEregexp‘用户编码|客户编码’andDEL_FLAG=0group
- 【MySQL】MySQL函数学习和总结
Aileen_0v0
MySQL自学篇mysql学习数据库
个人主页:Aileen_0v0热门专栏:华为鸿蒙系统学习|计算机网络|数据结构与算法个人格言:“没有罗马,那就自己创造罗马~”askforthemoon异想天开文章目录`函数``流程函数``if函数``ifnull函数``case函数``case函数``函数总结``Exercises`函数流程函数流程函数:可在SQL语句中实现条件筛选,提高语句效率。函数功能if(value,t,f)如果value
- mysql函数及解析_MYSQL常用内置函数详解说明
XCYI
mysql函数及解析
函数中可以将字段名当作变量来用,变量的值就是该列对应的所有值;在整理98在线字典数据时(http://zidian.98zw.com/),有这要一个需求,想从多音字duoyinzi字段值提取第一个拼音作为拼音pinyin字段的值,如:duoyinzi(ā,á,ǎ,à,a),想提取ā作为pinyin的值;数据有好几万条,不想用程序一条条处理,只想用一个sql来实现,后来了解了下MYSQL常用内置函数
- mysql中group_concat长度限制的问题
夜咲夜
在mysql中的group_concat函数默认支持的最大字符数为1024。当你使用group_concat函数时,超出第1024字符的字符会全部丢失。今天就被这个问题搞了一两个小时。不使用groupby和group_concat时数据是正确的。一用就发现使用了group_concat函数的列少了一些数据。获得group_concat的最大长度SELECT@@global.group_concat
- mysql函数汇总之日期和时间函数
运维家
日期和时间函数主要用来处理日期和时间值,一般的日期函数除了使用date类型的参数外,也可以使用datetime或者timestamp类型的参数,但会忽略这些值的时间部分。获取当前日期的函数curdate()和current_date()函数的作用相同,将当前日期按照yyyy-mm-dd或yyyymmdd格式的值返回。mysql>selectcurdate(),current_date(),curd
- GBASE之GROUP_CONCAT()函数
shirsl
数据库sql
listagg()oforacle在oracle中可以使用listagg()函数实现列转行的操作,将多列记录聚合为一条记录。官方文档参考:参考链接官方示例:示例1:Thefollowingsingle-setaggregateexamplelistsalloftheemployeesinDepartment30inthehr.employeestable,orderedbyhiredateandl
- [转]MySQL中GROUP_CONCAT函数的使用,separator将多行查询结果用特定字符串连接起来,适用于一对多
ElementABC
GROUP_CONCATseparator可将查询结果用字符串连接变为一行,需配合使用GROUPBY举例:查询打分.打分是两个评委给的分数,每个人的成绩是有两个,但希望查出来的结果是用字符串连接的,变为一行数据SELECTUSERID,SCOREFROMTBL_SCORE结果:USERIDSCORE1380139814881490使用GROUP_CONCATSELECTUSERID,GROUP_C
- mysql的group_concat使用以及group_concat_max_len的坑
好大的月亮
Mysql
一、concat()函数1、功能:将多个字符串连接成一个字符串。2、语法:concat(str1,str2,…)返回结果为连接参数产生的字符串,如果有任何一个参数为null,则返回值为null。3、举例:例1:selectconcat(id,name,score)asinfofromtt2;中间有一行为null是因为tt2表中有一行的score值为null。例2:在例1的结果中三个字段id,nam
- MYSQL函数
2301_80286359
mysql数据库
MYSQL函数–数学函数–abs,ceil,floor,greatest,least,max,min,等等--取绝对值selectabs(-19);--19--向上取整selectceil(1.1);--2--向下取整selectfloor(1.1);--1--列表最大值selectgreatest(1,2,3,4,0);--列表最小值selectleast(1,2,3,4,0);--求余数(取模
- mysql case when 聚合函数_mysql聚合函数
暗淡了乌云
mysqlcasewhen聚合函数
group_concat可以对分组查询后的值进行拼接,如selectagroup_concat(b)fromzgroupbya;就会按a列分组,b列对应聚合结果以逗号进行分隔select与case结合使用最大的好处有两点,一是在显示查询结果时可以灵活的组织格式,二是有效避免了多次对同一个表或几个表的访问。可以完成行转列的操作下面举个简单的例子来说明。例如表students(id,name,birt
- MySQL 聚合函数
赵丙双
MySQLmysql聚合函数
名称描述介绍MAX()最大值MIN()最小值COUNT()行数SUM()总和AVG()返回参数的平均值GROUP_CONCAT()拼接字符串BIT_AND()按位返回ANDBIT_OR()按位或返回BIT_XOR()返回按位异或JSON_ARRAYAGG()将结果集作为单个JSON数组返回5.7.22JSON_OBJECTAGG()将结果集作为单个JSON对象返回5.7.22STD()返回总体标准
- sqli.labs靶场(23关到28a关)
沧海一粟@星火燎原
sql数据库
23、第二十三关id=1'单引号闭合找位置1'and1=2unionselect1,2,3'爆库:1'and1=2unionselect1,2,database()'爆表名:1'and1=2unionselect1,2,group_concat(table_name)frominformation_schema.tableswheretable_schema='security''爆字段:1'an
- SQL函数 LISTAGG/string_agg/group_concat
风和雪的爱情
sql数据库
LISTAGG/string_agg/group_concatoracle函数listagg使用oracle函数listagg使用作用可以实现将多列记录聚合为一列记录,实现数据的压缩语法结构listagg(measure_expr,delimiter)withingroup(orderbyorder_by_clause);解释:measure_expr可以是基于任何列的表达式delimiter分隔
- listagg、xmlagg、group_concat()函数用法
银龙丶裁决
mysqloraclelistagg函数xmlagg函数group_concat函数聚合函数列转行
三种聚合函数listagg函数XMLAGG函数GROUP_CONCAT()函数listagg函数listagg是oracle数据库中的函数,可以使用指定连接符将字符串连接。如有表AREAS:CREATETABLEAREAS(AREA_CODEVARCHAR(32)NULLCOMMENT'地区编码',AREA_NAMEVARCHAR(32)NULLCOMMENT'地区名称',AREA_PIDVARC
- mysql group_concat 长度限制自动截取
gaoshan12345678910
mysql数据库
mysql的group_concat函数查询结果默认长度1024,超出部门将自动截取,只保留前半部分解决方法一:在mysql的配置文件“my.ini”或“my.conf”加上以下语句,然后重启mysql服务即可:group_concat_max_len=102400如果这个值设为-1,表示为最大值(4294967295)解决方法二:执行以下sql语句:SETGLOBALgroup_concat_m
- mysql中分组后拼接某个字段——GROUP_CONCAT函数
Java知识技术分享
mysqlmysql数据库
mysql中分组后拼接某个字段背景字典表结构如下:字典类型字典key字典值问题:如果字典类型一样,就把字典的值拼接到一起GROUPBY()函数的使用我们可以使用java进行分组,虽然会有些麻烦但也能得到我们想要的结果。如果我们想用这个分组结果连接其他的表就会很难办了,这时我们可以使用GROUPBY()函数将数据分组,如下:SELECTline_type,dict_valueFROMbas_busi
- MySQL必会四大函数-窗口函数
Weber77
数据库sql数据库mysql经验分享database
在了解窗口函数之前,我们必须了解聚合函数。常见的聚合函数,包括AVG、COUNT、MAX、MIN、SUM以及GROUP_CONCAT,常和GROUPBY函数一起使用。聚合函数的作用就是对一组数据行进行汇总计算,并且返回单个分析结果。窗口函数和聚合函数类似之处在于它也是对一组数据进行分析;但是,窗口函数不是将一组数据汇总为单个结果;而是针对查询中的每一行数据,基于和它相关的一组数据计算出一个结果。下
- MySQL函数-聚合函数,数学函数,字符串函数,日期函数,控制流函数
湯沫
总结mysql数据库
概述:在MySQL中,为了提高代码重用性和隐藏实现细节,MysQL提供了很多函数。函数可以理解为别人封装好的模板代码。主要分类:聚合函数数学函数字符串函数日期函数控制流函数窗口函数1,聚合函数概述:在MysQL中,聚合函数主要由:count,sum,min,max,avg,这些聚合函数我们之前都学过,不再重复。这里我们学习另外一个函数:group_concat(),该函数用户实现行的合并group
- SQL注入之union 联合注入
小gao
MySQL和sql注入sql数据库安全mysql网络安全
目录一、union查询的特性1.1、特性-11.2、特性-21.3、特性-3二、union联合注入2.1、让sqlib的Less-1页面显示出来2和32.2、MySQL中的一些函数2.3、MySQL中的函数和union的联合使用方法2.4、group_concat()函数2.5、使用union和group_concat函数进行sql注入2.6、分析注入过程2.7、使用union获取users表中的
- MySQL-常见函数
霸王龙的小胳膊
MySQLmysql数据库
文章目录1.函数的定义及分类2.数值型函数3.字符串型函数4.日期时间函数5.聚合函数6.流程函数1.函数的定义及分类MySQL函数是MySQL数据库提供的内部函数,这些内部函数可以帮助用户更加方便地处理表中的数据。对MySQL常用函数进行简单的分类,大概包括数值型函数、字符串型函数、日期时间函数、聚合函数、流程函数等。2.数值型函数函数名称作用ABS求绝对值SQRT求二次方根MOD求余数CEIL
- Mysql中数字排序问题
逝者如斯灬
手动转换类型:用下面的方法就可以了,使server_id+0之后再排序,问题解决了。selectserver_idfromcardserverwheregame_id=1orderbyserver_id+0desclimit10;+———–+|server_id|+———–+|10||8||7||6||5||4||3||2||1|+———–+使用MySQL函数CAST/CONVERT:mysql为
- CONCAT,CONCAT_WS,GROUP_CONCAT使用
努力努力,努力努力
java数据库前端
CONCAT()与CONCAT_WS()函数用于连接两个或多个串,但它们之间的基本区别是:1、CONCAT_WS()函数可以执行级联与串之间的分离器沿,而在CONCAT()方法没有隔板的概念。2、CONCAT()如果任何参数为NULL,则函数返回NULL;而CONCAT_WS()函数分隔符为NULL时,函数将返回才NULL。GROUP_CONCAT()函数是mysql中非常实用的函数,它可以将同一
- 数据库SQL实战(牛客网真题)31~40题
百里守约学编程
#牛客网MySQL刷题sql数据库dbamysql
文章目录SQL32将employees表的所有员工的last_name和first_name拼接起来作为Name知识点`concat、concat_ws、group_concat`函数用法SQL33创建一个actor表,包含如下列信息SQL34批量插入数据SQL35批量插入数据,不使用replace操作知识点`insertignoreinto`:若没有则插入,若存在则忽略`replaceinto`
- 没想到用了已久的group_concat竟然还有这个坑
走出舒适圈丶
sql数据库
1、运行正常的程序突然之间就多了一个被截走了,导致显示的不完全,被测试提出来直接拉闸。其实我们看到的group_concat这个函数他是有长度限制的,默认限制是1024,也就是说,如果你在数据库中使用这个函数,长度达到了1024之后,后面多的就不展示,就好比前端html中的一个input框,限制1024个字一样,多的你再怎么输入都不行了。解决方法:1、在mysql配置文件中添加这个2、设置临时的设
- PHP,安卓,UI,java,linux视频教程合集
cocos2d-x小菜
javaUIPHPandroidlinux
╔-----------------------------------╗┆
- 各表中的列名必须唯一。在表 'dbo.XXX' 中多次指定了列名 'XXX'。
bozch
.net.net mvc
在.net mvc5中,在执行某一操作的时候,出现了如下错误:
各表中的列名必须唯一。在表 'dbo.XXX' 中多次指定了列名 'XXX'。
经查询当前的操作与错误内容无关,经过对错误信息的排查发现,事故出现在数据库迁移上。
回想过去: 在迁移之前已经对数据库进行了添加字段操作,再次进行迁移插入XXX字段的时候,就会提示如上错误。
&
- Java 对象大小的计算
e200702084
java
Java对象的大小
如何计算一个对象的大小呢?
 
- Mybatis Spring
171815164
mybatis
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
CustomerService userService = (CustomerService) ac.getBean("customerService");
Customer cust
- JVM 不稳定参数
g21121
jvm
-XX 参数被称为不稳定参数,之所以这么叫是因为此类参数的设置很容易引起JVM 性能上的差异,使JVM 存在极大的不稳定性。当然这是在非合理设置的前提下,如果此类参数设置合理讲大大提高JVM 的性能及稳定性。 可以说“不稳定参数”
- 用户自动登录网站
永夜-极光
用户
1.目标:实现用户登录后,再次登录就自动登录,无需用户名和密码
2.思路:将用户的信息保存为cookie
每次用户访问网站,通过filter拦截所有请求,在filter中读取所有的cookie,如果找到了保存登录信息的cookie,那么在cookie中读取登录信息,然后直接
- centos7 安装后失去win7的引导记录
程序员是怎么炼成的
操作系统
1.使用root身份(必须)打开 /boot/grub2/grub.cfg 2.找到 ### BEGIN /etc/grub.d/30_os-prober ### 在后面添加 menuentry "Windows 7 (loader) (on /dev/sda1)" { 
- Oracle 10g 官方中文安装帮助文档以及Oracle官方中文教程文档下载
aijuans
oracle
Oracle 10g 官方中文安装帮助文档下载:http://download.csdn.net/tag/Oracle%E4%B8%AD%E6%96%87API%EF%BC%8COracle%E4%B8%AD%E6%96%87%E6%96%87%E6%A1%A3%EF%BC%8Coracle%E5%AD%A6%E4%B9%A0%E6%96%87%E6%A1%A3 Oracle 10g 官方中文教程
- JavaEE开源快速开发平台G4Studio_V3.2发布了
無為子
AOPoraclemysqljavaeeG4Studio
我非常高兴地宣布,今天我们最新的JavaEE开源快速开发平台G4Studio_V3.2版本已经正式发布。大家可以通过如下地址下载。
访问G4Studio网站
http://www.g4it.org
G4Studio_V3.2版本变更日志
功能新增
(1).新增了系统右下角滑出提示窗口功能。
(2).新增了文件资源的Zip压缩和解压缩
- Oracle常用的单行函数应用技巧总结
百合不是茶
日期函数转换函数(核心)数字函数通用函数(核心)字符函数
单行函数; 字符函数,数字函数,日期函数,转换函数(核心),通用函数(核心)
一:字符函数:
.UPPER(字符串) 将字符串转为大写
.LOWER (字符串) 将字符串转为小写
.INITCAP(字符串) 将首字母大写
.LENGTH (字符串) 字符串的长度
.REPLACE(字符串,'A','_') 将字符串字符A转换成_
- Mockito异常测试实例
bijian1013
java单元测试mockito
Mockito异常测试实例:
package com.bijian.study;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import org.junit.Assert;
import org.junit.Test;
import org.mockito.
- GA与量子恒道统计
Bill_chen
JavaScript浏览器百度Google防火墙
前一阵子,统计**网址时,Google Analytics(GA) 和量子恒道统计(也称量子统计),数据有较大的偏差,仔细找相关资料研究了下,总结如下:
为何GA和量子网站统计(量子统计前身为雅虎统计)结果不同?
首先:没有一种网站统计工具能保证百分之百的准确出现该问题可能有以下几个原因:(1)不同的统计分析系统的算法机制不同;(2)统计代码放置的位置和前后
- 【Linux命令三】Top命令
bit1129
linux命令
Linux的Top命令类似于Windows的任务管理器,可以查看当前系统的运行情况,包括CPU、内存的使用情况等。如下是一个Top命令的执行结果:
top - 21:22:04 up 1 day, 23:49, 1 user, load average: 1.10, 1.66, 1.99
Tasks: 202 total, 4 running, 198 sl
- spring四种依赖注入方式
白糖_
spring
平常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依赖注入的思想,即依赖类不由程序员实例化,而是通过spring容器帮我们new指定实例并且将实例注入到需要该对象的类中。依赖注入的另一种说法是“控制反转”,通俗的理解是:平常我们new一个实例,这个实例的控制权是我
- angular.injector
boyitech
AngularJSAngularJS API
angular.injector
描述: 创建一个injector对象, 调用injector对象的方法可以获得angular的service, 或者用来做依赖注入. 使用方法: angular.injector(modules, [strictDi]) 参数详解: Param Type Details mod
- java-同步访问一个数组Integer[10],生产者不断地往数组放入整数1000,数组满时等待;消费者不断地将数组里面的数置零,数组空时等待
bylijinnan
Integer
public class PC {
/**
* 题目:生产者-消费者。
* 同步访问一个数组Integer[10],生产者不断地往数组放入整数1000,数组满时等待;消费者不断地将数组里面的数置零,数组空时等待。
*/
private static final Integer[] val=new Integer[10];
private static
- 使用Struts2.2.1配置
Chen.H
apachespringWebxmlstruts
Struts2.2.1 需要如下 jar包: commons-fileupload-1.2.1.jar commons-io-1.3.2.jar commons-logging-1.0.4.jar freemarker-2.3.16.jar javassist-3.7.ga.jar ognl-3.0.jar spring.jar
struts2-core-2.2.1.jar struts2-sp
- [职业与教育]青春之歌
comsci
教育
每个人都有自己的青春之歌............但是我要说的却不是青春...
大家如果在自己的职业生涯没有给自己以后创业留一点点机会,仅仅凭学历和人脉关系,是难以在竞争激烈的市场中生存下去的....
&nbs
- oracle连接(join)中使用using关键字
daizj
JOINoraclesqlusing
在oracle连接(join)中使用using关键字
34. View the Exhibit and examine the structure of the ORDERS and ORDER_ITEMS tables.
Evaluate the following SQL statement:
SELECT oi.order_id, product_id, order_date
FRO
- NIO示例
daysinsun
nio
NIO服务端代码:
public class NIOServer {
private Selector selector;
public void startServer(int port) throws IOException {
ServerSocketChannel serverChannel = ServerSocketChannel.open(
- C语言学习homework1
dcj3sjt126com
chomework
0、 课堂练习做完
1、使用sizeof计算出你所知道的所有的类型占用的空间。
int x;
sizeof(x);
sizeof(int);
# include <stdio.h>
int main(void)
{
int x1;
char x2;
double x3;
float x4;
printf(&quo
- select in order by , mysql排序
dcj3sjt126com
mysql
If i select like this:
SELECT id FROM users WHERE id IN(3,4,8,1);
This by default will select users in this order
1,3,4,8,
I would like to select them in the same order that i put IN() values so:
- 页面校验-新建项目
fanxiaolong
页面校验
$(document).ready(
function() {
var flag = true;
$('#changeform').submit(function() {
var projectScValNull = true;
var s ="";
var parent_id = $("#parent_id").v
- Ehcache(02)——ehcache.xml简介
234390216
ehcacheehcache.xml简介
ehcache.xml简介
ehcache.xml文件是用来定义Ehcache的配置信息的,更准确的来说它是定义CacheManager的配置信息的。根据之前我们在《Ehcache简介》一文中对CacheManager的介绍我们知道一切Ehcache的应用都是从CacheManager开始的。在不指定配置信
- junit 4.11中三个新功能
jackyrong
java
junit 4.11中两个新增的功能,首先是注解中可以参数化,比如
import static org.junit.Assert.assertEquals;
import java.util.Arrays;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runn
- 国外程序员爱用苹果Mac电脑的10大理由
php教程分享
windowsPHPunixMicrosoftperl
Mac 在国外很受欢迎,尤其是在 设计/web开发/IT 人员圈子里。普通用户喜欢 Mac 可以理解,毕竟 Mac 设计美观,简单好用,没有病毒。那么为什么专业人士也对 Mac 情有独钟呢?从个人使用经验来看我想有下面几个原因:
1、Mac OS X 是基于 Unix 的
这一点太重要了,尤其是对开发人员,至少对于我来说很重要,这意味着Unix 下一堆好用的工具都可以随手捡到。如果你是个 wi
- 位运算、异或的实际应用
wenjinglian
位运算
一. 位操作基础,用一张表描述位操作符的应用规则并详细解释。
二. 常用位操作小技巧,有判断奇偶、交换两数、变换符号、求绝对值。
三. 位操作与空间压缩,针对筛素数进行空间压缩。
&n
- weblogic部署项目出现的一些问题(持续补充中……)
Everyday都不同
weblogic部署失败
好吧,weblogic的问题确实……
问题一:
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: URL [zip:E:/weblogic/user_projects/domains/base_domain/serve
- tomcat7性能调优(01)
toknowme
tomcat7
Tomcat优化: 1、最大连接数最大线程等设置
<Connector port="8082" protocol="HTTP/1.1"
useBodyEncodingForURI="t
- PO VO DAO DTO BO TO概念与区别
xp9802
javaDAO设计模式bean领域模型
O/R Mapping 是 Object Relational Mapping(对象关系映射)的缩写。通俗点讲,就是将对象与关系数据库绑定,用对象来表示关系数据。在O/R Mapping的世界里,有两个基本的也是重要的东东需要了解,即VO,PO。
它们的关系应该是相互独立的,一个VO可以只是PO的部分,也可以是多个PO构成,同样也可以等同于一个PO(指的是他们的属性)。这样,PO独立出来,数据持