将这句代码改为以pointname查询条件sql
时间: 2024-01-01 22:03:39 浏览: 29
可以将代码修改为如下形式:
```
String sql = "SELECT * FROM FY_YDL_POLLUTION_INFO WHERE 1=1";
if(pointname != null && !pointname.isEmpty()) {
sql += " AND POINTNAME LIKE '%" + pointname + "%'";
}
```
这样修改后,如果pointname不为null且不为空字符串,就会添加一个以POINTNAME为查询条件的SQL查询语句。如果pointname为null或空字符串,则不添加该查询条件。最终生成的SQL查询语句将查询FY_YDL_POLLUTION_INFO表中所有POINTNAME列包含指定字符串pointname的行。
相关问题
使用多线程在50w数据表alarm_point中提取id(String),dev_name(String)两个字段,然后根据id将dev_name的数据更新至字段alm_class_desc(String)中,数据库为clickhouse,输出sql语句,使用java完成
您可以参考以下Java代码实现:
```java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class UpdateAlarmClassDesc {
private static final String URL = "jdbc:clickhouse://localhost:8123/database";
private static final String USERNAME = "username";
private static final String PASSWORD = "password";
private static final String SELECT_SQL = "SELECT id, dev_name FROM alarm_point";
private static final String UPDATE_SQL = "UPDATE alarm_point SET alm_class_desc = ? WHERE id = ?";
public static void main(String[] args) {
ExecutorService executorService = Executors.newFixedThreadPool(10);
try (Connection conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
PreparedStatement selectStmt = conn.prepareStatement(SELECT_SQL);
ResultSet rs = selectStmt.executeQuery()) {
while (rs.next()) {
String id = rs.getString("id");
String devName = rs.getString("dev_name");
executorService.submit(() -> updateAlarmClassDesc(conn, id, devName));
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
executorService.shutdown();
}
}
private static void updateAlarmClassDesc(Connection conn, String id, String devName) {
try (PreparedStatement updateStmt = conn.prepareStatement(UPDATE_SQL)) {
updateStmt.setString(1, devName);
updateStmt.setString(2, id);
updateStmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
```
这段代码使用Java的多线程技术,从clickhouse数据库的`alarm_point`表中提取`id`和`dev_name`字段,并使用`id`更新`alm_class_desc`字段。可以根据需要修改线程池的大小和数据库连接信息。
帐号表结构如下: CREATE TABLE `t_account` ( `account_id` int(10) unsigned NOT NULL auto_increment COMMENT '所属帐号id', `account_name` varchar(50) NOT NULL COMMENT '帐号名', `password` varchar(16) NOT NULL COMMENT '密码', `last_login_time` timestamp NOT NULL default '1979-01-01 00:00:00' COMMENT '最后登录时间', `point` int(10) unsigned NOT NULL default '0' COMMENT '积分', PRIMARY KEY USING BTREE (`account_id`), ) ENGINE=InnoDB AUTO_INCREMENT=10001 DEFAULT CHARSET=utf8; CREATE TABLE `t_account_nickname` ( `account_id` int(10) unsigned NOT NULL COMMENT '所属帐号id', `account_nickname `varchar(50) NOT NULL COMMENT'昵称', PRIMARY KEY USING BTREE (`account_id`), ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 请写出SQL语句(温馨提示:列点作答,字体端正,代码细节与规范) 1.查询最近1000个登录的帐号(mysql) 2.查询如下结果:第一列帐号ID,第二列帐号名,第三列昵称,第四列积分 3.对帐号名里包含rock的帐号,积分修改为0 4.查询出重复的昵称
1. 查询最近1000个登录的帐号(mysql)
```
SELECT account_id, account_name, last_login_time, point
FROM t_account
ORDER BY last_login_time DESC
LIMIT 1000;
```
2. 查询如下结果:第一列帐号ID,第二列帐号名,第三列昵称,第四列积分
```
SELECT t1.account_id, t1.account_name, t2.account_nickname, t1.point
FROM t_account AS t1
LEFT JOIN t_account_nickname AS t2 ON t1.account_id = t2.account_id;
```
3. 对帐号名里包含rock的帐号,积分修改为0
```
UPDATE t_account
SET point = 0
WHERE account_name LIKE '%rock%';
```
4. 查询出重复的昵称
```
SELECT account_nickname, COUNT(*) AS num
FROM t_account_nickname
GROUP BY account_nickname
HAVING num > 1;
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)