какой самый простой способ проверить равенство двух строк БД с помощью groovy sql

#groovy

#groovy

Вопрос:

Есть ли простой и лаконичный способ проверить, что две строки данной таблицы содержат одинаковые данные во всех столбцах?

Комментарии:

1. gist.github.com/272110 показан пример пользовательского dbunit, но не чистого groovy sql

2. Вы имеете в виду, что у вас есть две строки, и вы хотите их сравнить, или вы хотите найти все повторяющиеся строки в таблице базы данных?

3. @tim_yates У меня есть две строки, и я хочу их сравнить

4. И a == b не работает? Какой-нибудь пример того, что вы пробовали и не смогли заставить работать, может помочь, если вы добавите его в вопрос… Или, я подозреваю, что у Дона есть ответ ниже

Ответ №1:

Я не тестировал это, но это кажется наиболее очевидным решением:

 // get an Sql instance
def db = [url:'jdbc:hsqldb:mem:testDB', user:'sa', password:'',
    driver:'org.hsqldb.jdbcDriver']
def sql = Sql.newInstance(db.url, db.user, db.password, db.driver)

// Get 2 rows
GroovyRowResults row1 = sql.firstRow("select * from user where id = 4")
GroovyRowResults row2 = sql.firstRow("select * from user where email = 'me@example.org'")

// compare them
boolean identical = row1.equals(row2)
  

Ответ №2:

Не особенно Groovy, но я бы заставил SQL выполнить подъем a la что-то вроде:

 db.firstRow("SELECT COUNT(DISTINCT CONCAT(city,state,zip)) FROM Candidates WHERE id IN (1,2)")[0] == 0