Viết FUNCTION trên MariaDB (HeidiSQL) bị duplicate dữ liệu

chả là em đang bị 1 case đệ quy như vầy

ví dụ : object 1 : id 1 parentId null
object 2 : id 2 parentId 1
thì trường hợp này hàm của e nó đúng

nếu ngược lại : object 1 : id 1 parentId 2
object 2 : id 2 parentId null

thì hàm của e bị duplicate dữ liệu , vì e tính toán lấy dữ liệu lên bằng code bình thường , ko có xài hàm hỗ trợ gì hết , như bên oracle thì có cái method connect by prior lấy dc thằng gốc luôn thì đỡ , còn bên mariaDB thì e k bít , đối với case này coi như e bỏ tiền ra mướn cao nhân viết dùm function trong db mariaDB , mong ai đó giúp thằng đệ cái :v:

Mình không biết một chút gì về MariaDB và FUNCTION, nhưng theo tư duy bình thường thì nó sẽ báo duplicate vì id 2 đã được xác định ở parentId 2 rồi lại được define 1 lần nữa ở dòng object 2: id 2, do đó nếu bạn đảo ngược thứ tự 2 dòng thì có thể vấn đề sẽ được giải quyết

object 2 : id 2 parentId null
object 1 : id 1 parentId 2
2 Likes

dạ thì e hiểu vấn đề là sao fai sắp xếp dc thằng cha nằm trước thì nó đúng , nhưng e không biết cách viết function như bên oracle là khi lấy dữ liệu lên , thì thằng nào là cha nó sẽ auto đứng trước , vấn đề là chỗ đó đó bác :v:

Vậy thì mình lại không hiểu vấn đề của bạn là gì rồi. Bạn có thể mô tả lại vấn đề của bạn như sau không?:

  • Yêu cầu vấn đề là gì?
  • Dữ liệu input đầu vào là gì?
  • Output mong đợi là gì?

Nếu vấn đề của bạn là một phạm vi hẹp thì xác suất tìm người biết về nó càng thấp, như vậy việc bạn mô tả càng chính xác thì những người khác mặc dù không rành về vấn đề đó vẫn có thể giúp bạn có hướng giải quyết.

1 Like

đây để e giải thích lại cho rõ ràng :

  • object 1 : id = 1 parentId = null
  • object 2 : id = 2 parentId = 1

trường hợp này là : thằng cha nằm trước thằng con , hàm của e chạy đúng

nếu ngược lại :

  • object 1 : id = 1 parentId = 2
  • object 2 : id = 2 parentId = null

trường hợp này là : thằng con nằm trước thằng cha nên hàm e nó chạy sai

trong db oracle có 1 cái hàm tên là connect by prior khi lấy dữ liệu lên nó sẽ biết thằng nào là cha , và nó sẽ sắp cho thằng cha lúc nào cũng đứng trước luôn

em cũng khá chắc là mariaDB cũng có cái này nên mới lên đây tìm sự trợ giúp mấy cao nhân :v

mong muốn của e chỉ là khi lấy dữ liệu lên thì nó sẽ biết dc thằng cha gốc và sắp lên đầu tiên zậy thôi :slight_smile:

Bạn có thể cho biết cái này có thêm bao nhiêu thông tin so với câu hỏi ban đầu của bạn không? Hay chỉ đơn giản là viết lại câu hỏi với các từ được sắp xếp lại theo thứ tự khác?

Làm sao bạn biết khá chắc cái này? Mà nếu đã biết thì sao không tìm hiểu trên google thử xem có ai làm qua chưa?

VD như cái này? https://www.sqlines.com/oracle-to-mariadb/connect_by_prior

3 Likes

em quăng zô code , nhờ chat gpt các kiểu , mà vẫn ko ra nổi các bác à T_T , e thử hết rồi á , e hỏi từ đông sang tây , đến nổi zô đây hỏi bác nào biết viết , viết dùm e trả tiền lun :slight_smile:

Thế bạn đã đọc hiểu được gì từ link này chưa?

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?